├── .watchmanconfig
├── .gitattributes
├── README.md
├── src
├── store
│ ├── actionTypes.js
│ ├── actionCreaters.js
│ ├── index.js
│ └── reducer.js
├── assets
│ ├── images
│ │ ├── QR.png
│ │ ├── 小电视.png
│ │ ├── black.jpg
│ │ ├── timg.gif
│ │ ├── horline.png
│ │ ├── ic_empty.png
│ │ ├── ic_null.png
│ │ ├── jianbian.png
│ │ ├── liveNext.png
│ │ ├── livego.png
│ │ ├── back_live.png
│ │ ├── fengmian1.jpg
│ │ ├── fengmian2.jpg
│ │ ├── fengmian3.jpg
│ │ ├── head_icon.jpg
│ │ ├── ic_loading.png
│ │ ├── ic_tv_play.png
│ │ ├── partitions.png
│ │ ├── splashpage.jpg
│ │ ├── billiveperson.png
│ │ ├── live_banner1.jpg
│ │ ├── live_banner2.png
│ │ ├── live_banner3.jpg
│ │ ├── me_tv_sign_in.png
│ │ ├── ic_player_coin.png
│ │ ├── live_background.png
│ │ ├── me_tv_sign_out.png
│ │ ├── ic_loading_error.png
│ │ ├── ic_tv_play_large.png
│ │ ├── login_logo_account.png
│ │ ├── bili_default_avatar.png
│ │ ├── dynamic_login_guide.png
│ │ ├── login_logo_password.png
│ │ ├── bangumi_home_login_guide.png
│ │ ├── img_tips_error_load_error.png
│ │ └── ic_player_danmaku_input_options_rl_disabled.png
│ └── icons
│ │ ├── myiconfont.ttf
│ │ ├── font_bilibili
│ │ ├── iconfont.eot
│ │ ├── iconfont.ttf
│ │ ├── iconfont.woff
│ │ └── iconfont.woff2
│ │ └── mybilibil_font
│ │ └── font_1562172_onj4s86ncfd
│ │ ├── iconfont.eot
│ │ ├── iconfont.ttf
│ │ ├── iconfont.woff
│ │ ├── iconfont.woff2
│ │ └── iconfont.json
├── components
│ ├── MemberBuy
│ │ ├── FiveList.js
│ │ ├── Swipe.js
│ │ ├── Tabs.js
│ │ ├── Search.js
│ │ ├── Top.js
│ │ ├── StickyHeader.js
│ │ ├── ThreeList.js
│ │ ├── TabsList.js
│ │ ├── UnGoodList.js
│ │ └── GoodList.js
│ ├── ListItemUI.js
│ ├── AppDraw
│ │ └── land.js
│ ├── BanMore.js
│ ├── MovieThree.js
│ ├── MovieOne.js
│ └── MovieTwo.js
├── pages
│ ├── Classify.js
│ ├── HomePage.js
│ ├── search_sub_pages
│ │ └── SearchResult.js
│ ├── home_sub_pages
│ │ ├── Move.js
│ │ └── Bangumi.js
│ └── MemberBuy.js
└── utils
│ └── utils.js
├── app.json
├── .eslintrc.js
├── android
├── app
│ ├── debug.keystore
│ ├── src
│ │ ├── main
│ │ │ ├── res
│ │ │ │ ├── raw
│ │ │ │ │ ├── app.json
│ │ │ │ │ ├── node_modules_reactnativevectoricons_glyphmaps_evilicons.json
│ │ │ │ │ ├── node_modules_reactnativevectoricons_glyphmaps_zocial.json
│ │ │ │ │ ├── node_modules_reactnativevectoricons_glyphmaps_octicons.json
│ │ │ │ │ ├── node_modules_reactnativevectoricons_glyphmaps_simplelineicons.json
│ │ │ │ │ ├── node_modules_reactnativevectoricons_glyphmaps_feather.json
│ │ │ │ │ ├── node_modules_reactnativevectoricons_glyphmaps_antdesign.json
│ │ │ │ │ └── node_modules_reactnativevectoricons_glyphmaps_foundation.json
│ │ │ │ ├── values
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ └── styles.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── drawable-mdpi
│ │ │ │ │ ├── src_assets_images_back_live.png
│ │ │ │ │ ├── src_assets_images_horline.png
│ │ │ │ │ ├── src_assets_images_jianbian.png
│ │ │ │ │ ├── src_assets_images_livenext.png
│ │ │ │ │ ├── src_assets_images_ic_tv_play.png
│ │ │ │ │ ├── src_assets_images_billiveperson.png
│ │ │ │ │ ├── src_assets_images_me_tv_sign_out.png
│ │ │ │ │ ├── src_assets_images_bili_default_avatar.png
│ │ │ │ │ ├── src_assets_images_bangumi_home_login_guide.png
│ │ │ │ │ ├── node_modules_reactnativerouterflux_images_back_chevron.png
│ │ │ │ │ ├── node_modules_reactnativerouterflux_images_menu_burger.png
│ │ │ │ │ ├── node_modules_reactnavigationstack_dist_views_assets_backicon.png
│ │ │ │ │ ├── node_modules_reactnative_libraries_newappscreen_components_logo.png
│ │ │ │ │ └── node_modules_reactnavigationstack_dist_views_assets_backiconmask.png
│ │ │ │ ├── drawable-hdpi
│ │ │ │ │ └── node_modules_reactnavigationstack_dist_views_assets_backicon.png
│ │ │ │ ├── drawable-xhdpi
│ │ │ │ │ └── node_modules_reactnavigationstack_dist_views_assets_backicon.png
│ │ │ │ ├── drawable-xxhdpi
│ │ │ │ │ └── node_modules_reactnavigationstack_dist_views_assets_backicon.png
│ │ │ │ └── drawable-xxxhdpi
│ │ │ │ │ └── node_modules_reactnavigationstack_dist_views_assets_backicon.png
│ │ │ ├── assets
│ │ │ │ └── fonts
│ │ │ │ │ ├── Entypo.ttf
│ │ │ │ │ ├── Feather.ttf
│ │ │ │ │ ├── Roboto.ttf
│ │ │ │ │ ├── Zocial.ttf
│ │ │ │ │ ├── AntDesign.ttf
│ │ │ │ │ ├── EvilIcons.ttf
│ │ │ │ │ ├── Fontisto.ttf
│ │ │ │ │ ├── Ionicons.ttf
│ │ │ │ │ ├── Octicons.ttf
│ │ │ │ │ ├── iconfont.ttf
│ │ │ │ │ ├── FontAwesome.ttf
│ │ │ │ │ ├── Foundation.ttf
│ │ │ │ │ ├── myiconfont.ttf
│ │ │ │ │ ├── MaterialIcons.ttf
│ │ │ │ │ ├── Roboto_medium.ttf
│ │ │ │ │ ├── SimpleLineIcons.ttf
│ │ │ │ │ ├── rubicon-icon-font.ttf
│ │ │ │ │ ├── FontAwesome5_Brands.ttf
│ │ │ │ │ ├── FontAwesome5_Solid.ttf
│ │ │ │ │ ├── FontAwesome5_Regular.ttf
│ │ │ │ │ └── MaterialCommunityIcons.ttf
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── react_blibli
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ └── AndroidManifest.xml
│ │ └── debug
│ │ │ └── AndroidManifest.xml
│ ├── proguard-rules.pro
│ ├── build_defs.bzl
│ └── BUCK
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── settings.gradle
├── gradle.properties
├── build.gradle
├── gradlew.bat
└── gradlew
├── babel.config.js
├── ios
├── react_blibli
│ ├── Images.xcassets
│ │ ├── Contents.json
│ │ └── AppIcon.appiconset
│ │ │ └── Contents.json
│ ├── AppDelegate.h
│ ├── main.m
│ ├── AppDelegate.m
│ ├── Info.plist
│ └── Base.lproj
│ │ └── LaunchScreen.xib
├── react_blibliTests
│ ├── Info.plist
│ └── react_blibliTests.m
├── react_blibli-tvOSTests
│ └── Info.plist
├── react_blibli-tvOS
│ └── Info.plist
├── Podfile
└── react_blibli.xcodeproj
│ └── xcshareddata
│ └── xcschemes
│ ├── react_blibli.xcscheme
│ └── react_blibli-tvOS.xcscheme
├── .buckconfig
├── .prettierrc.js
├── index.js
├── __tests__
└── App-test.js
├── metro.config.js
├── .gitignore
├── package.json
├── .flowconfig
├── router.js
└── App.js
/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.pbxproj -text
2 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | react-native link
4 |
5 | react-native run-android
--------------------------------------------------------------------------------
/src/store/actionTypes.js:
--------------------------------------------------------------------------------
1 | // export const CHANGE_TAB_LOCK = 'changeTabLock'
2 |
--------------------------------------------------------------------------------
/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react_blibli",
3 | "displayName": "react_blibli"
4 | }
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | root: true,
3 | extends: '@react-native-community',
4 | };
5 |
--------------------------------------------------------------------------------
/src/assets/images/QR.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/QR.png
--------------------------------------------------------------------------------
/src/assets/images/小电视.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/小电视.png
--------------------------------------------------------------------------------
/android/app/debug.keystore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/debug.keystore
--------------------------------------------------------------------------------
/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: ['module:metro-react-native-babel-preset'],
3 | };
4 |
--------------------------------------------------------------------------------
/src/assets/images/black.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/black.jpg
--------------------------------------------------------------------------------
/src/assets/images/timg.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/timg.gif
--------------------------------------------------------------------------------
/android/app/src/main/res/raw/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react_blibli",
3 | "displayName": "react_blibli"
4 | }
--------------------------------------------------------------------------------
/src/assets/images/horline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/horline.png
--------------------------------------------------------------------------------
/src/assets/images/ic_empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/ic_empty.png
--------------------------------------------------------------------------------
/src/assets/images/ic_null.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/ic_null.png
--------------------------------------------------------------------------------
/src/assets/images/jianbian.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/jianbian.png
--------------------------------------------------------------------------------
/src/assets/images/liveNext.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/liveNext.png
--------------------------------------------------------------------------------
/src/assets/images/livego.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/livego.png
--------------------------------------------------------------------------------
/src/assets/icons/myiconfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/icons/myiconfont.ttf
--------------------------------------------------------------------------------
/src/assets/images/back_live.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/back_live.png
--------------------------------------------------------------------------------
/src/assets/images/fengmian1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/fengmian1.jpg
--------------------------------------------------------------------------------
/src/assets/images/fengmian2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/fengmian2.jpg
--------------------------------------------------------------------------------
/src/assets/images/fengmian3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/fengmian3.jpg
--------------------------------------------------------------------------------
/src/assets/images/head_icon.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/head_icon.jpg
--------------------------------------------------------------------------------
/src/assets/images/ic_loading.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/ic_loading.png
--------------------------------------------------------------------------------
/src/assets/images/ic_tv_play.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/ic_tv_play.png
--------------------------------------------------------------------------------
/src/assets/images/partitions.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/partitions.png
--------------------------------------------------------------------------------
/src/assets/images/splashpage.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/splashpage.jpg
--------------------------------------------------------------------------------
/src/assets/images/billiveperson.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/billiveperson.png
--------------------------------------------------------------------------------
/src/assets/images/live_banner1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/live_banner1.jpg
--------------------------------------------------------------------------------
/src/assets/images/live_banner2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/live_banner2.png
--------------------------------------------------------------------------------
/src/assets/images/live_banner3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/live_banner3.jpg
--------------------------------------------------------------------------------
/src/assets/images/me_tv_sign_in.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/me_tv_sign_in.png
--------------------------------------------------------------------------------
/src/assets/images/ic_player_coin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/ic_player_coin.png
--------------------------------------------------------------------------------
/src/assets/images/live_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/live_background.png
--------------------------------------------------------------------------------
/src/assets/images/me_tv_sign_out.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/me_tv_sign_out.png
--------------------------------------------------------------------------------
/android/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | react_blibli
3 |
4 |
--------------------------------------------------------------------------------
/ios/react_blibli/Images.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/src/assets/images/ic_loading_error.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/ic_loading_error.png
--------------------------------------------------------------------------------
/src/assets/images/ic_tv_play_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/ic_tv_play_large.png
--------------------------------------------------------------------------------
/src/assets/images/login_logo_account.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/login_logo_account.png
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/src/assets/images/bili_default_avatar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/bili_default_avatar.png
--------------------------------------------------------------------------------
/src/assets/images/dynamic_login_guide.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/dynamic_login_guide.png
--------------------------------------------------------------------------------
/src/assets/images/login_logo_password.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/login_logo_password.png
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Entypo.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/Entypo.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Feather.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/Feather.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Roboto.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/Roboto.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Zocial.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/Zocial.ttf
--------------------------------------------------------------------------------
/src/assets/icons/font_bilibili/iconfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/icons/font_bilibili/iconfont.eot
--------------------------------------------------------------------------------
/src/assets/icons/font_bilibili/iconfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/icons/font_bilibili/iconfont.ttf
--------------------------------------------------------------------------------
/src/assets/icons/font_bilibili/iconfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/icons/font_bilibili/iconfont.woff
--------------------------------------------------------------------------------
/src/assets/icons/font_bilibili/iconfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/icons/font_bilibili/iconfont.woff2
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/AntDesign.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/AntDesign.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/EvilIcons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/EvilIcons.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Fontisto.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/Fontisto.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Ionicons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/Ionicons.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Octicons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/Octicons.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/iconfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/iconfont.ttf
--------------------------------------------------------------------------------
/src/assets/images/bangumi_home_login_guide.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/bangumi_home_login_guide.png
--------------------------------------------------------------------------------
/src/assets/images/img_tips_error_load_error.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/img_tips_error_load_error.png
--------------------------------------------------------------------------------
/.buckconfig:
--------------------------------------------------------------------------------
1 |
2 | [android]
3 | target = Google Inc.:Google APIs:23
4 |
5 | [maven_repositories]
6 | central = https://repo1.maven.org/maven2
7 |
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/FontAwesome.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/FontAwesome.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Foundation.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/Foundation.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/myiconfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/myiconfont.ttf
--------------------------------------------------------------------------------
/.prettierrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | bracketSpacing: false,
3 | jsxBracketSameLine: true,
4 | singleQuote: true,
5 | trailingComma: 'all',
6 | };
7 |
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/MaterialIcons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/MaterialIcons.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Roboto_medium.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/Roboto_medium.ttf
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/SimpleLineIcons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/SimpleLineIcons.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/rubicon-icon-font.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/rubicon-icon-font.ttf
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/FontAwesome5_Brands.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/FontAwesome5_Brands.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/FontAwesome5_Solid.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/FontAwesome5_Solid.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/FontAwesome5_Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/FontAwesome5_Regular.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/MaterialCommunityIcons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/MaterialCommunityIcons.ttf
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/src/assets/images/ic_player_danmaku_input_options_rl_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/ic_player_danmaku_input_options_rl_disabled.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/src_assets_images_back_live.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-mdpi/src_assets_images_back_live.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/src_assets_images_horline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-mdpi/src_assets_images_horline.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/src_assets_images_jianbian.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-mdpi/src_assets_images_jianbian.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/src_assets_images_livenext.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-mdpi/src_assets_images_livenext.png
--------------------------------------------------------------------------------
/src/assets/icons/mybilibil_font/font_1562172_onj4s86ncfd/iconfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/icons/mybilibil_font/font_1562172_onj4s86ncfd/iconfont.eot
--------------------------------------------------------------------------------
/src/assets/icons/mybilibil_font/font_1562172_onj4s86ncfd/iconfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/icons/mybilibil_font/font_1562172_onj4s86ncfd/iconfont.ttf
--------------------------------------------------------------------------------
/src/assets/icons/mybilibil_font/font_1562172_onj4s86ncfd/iconfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/icons/mybilibil_font/font_1562172_onj4s86ncfd/iconfont.woff
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/src_assets_images_ic_tv_play.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-mdpi/src_assets_images_ic_tv_play.png
--------------------------------------------------------------------------------
/src/assets/icons/mybilibil_font/font_1562172_onj4s86ncfd/iconfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/icons/mybilibil_font/font_1562172_onj4s86ncfd/iconfont.woff2
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/src_assets_images_billiveperson.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-mdpi/src_assets_images_billiveperson.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/src_assets_images_me_tv_sign_out.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-mdpi/src_assets_images_me_tv_sign_out.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/src_assets_images_bili_default_avatar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-mdpi/src_assets_images_bili_default_avatar.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/src_assets_images_bangumi_home_login_guide.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-mdpi/src_assets_images_bangumi_home_login_guide.png
--------------------------------------------------------------------------------
/android/settings.gradle:
--------------------------------------------------------------------------------
1 | rootProject.name = 'react_blibli'
2 | apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
3 | include ':app'
4 |
--------------------------------------------------------------------------------
/src/store/actionCreaters.js:
--------------------------------------------------------------------------------
1 | // import {
2 | // CHANGE_TAB_LOCK
3 | // } from './actionTypes';
4 |
5 | // export const changeTabLockAction = (value) => ({
6 | // type: CHANGE_TAB_LOCK,
7 | // value
8 | // })
9 |
10 |
11 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/node_modules_reactnativerouterflux_images_back_chevron.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-mdpi/node_modules_reactnativerouterflux_images_back_chevron.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/node_modules_reactnativerouterflux_images_menu_burger.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-mdpi/node_modules_reactnativerouterflux_images_menu_burger.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-hdpi/node_modules_reactnavigationstack_dist_views_assets_backicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-hdpi/node_modules_reactnavigationstack_dist_views_assets_backicon.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/node_modules_reactnavigationstack_dist_views_assets_backicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-mdpi/node_modules_reactnavigationstack_dist_views_assets_backicon.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xhdpi/node_modules_reactnavigationstack_dist_views_assets_backicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-xhdpi/node_modules_reactnavigationstack_dist_views_assets_backicon.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxhdpi/node_modules_reactnavigationstack_dist_views_assets_backicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-xxhdpi/node_modules_reactnavigationstack_dist_views_assets_backicon.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/node_modules_reactnative_libraries_newappscreen_components_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-mdpi/node_modules_reactnative_libraries_newappscreen_components_logo.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/node_modules_reactnavigationstack_dist_views_assets_backiconmask.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-mdpi/node_modules_reactnavigationstack_dist_views_assets_backiconmask.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxxhdpi/node_modules_reactnavigationstack_dist_views_assets_backicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-xxxhdpi/node_modules_reactnavigationstack_dist_views_assets_backicon.png
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.5-all.zip
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 |
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @format
3 | */
4 |
5 | import {AppRegistry} from 'react-native';
6 | // import App from './App';
7 | import App from './router';
8 | import {name as AppName} from './app.json';
9 |
10 | AppRegistry.registerComponent(AppName, () => App);
11 |
--------------------------------------------------------------------------------
/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/__tests__/App-test.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @format
3 | */
4 |
5 | import 'react-native';
6 | import React from 'react';
7 | import App from '../App';
8 |
9 | // Note: test renderer must be required after react-native.
10 | import renderer from 'react-test-renderer';
11 |
12 | it('renders correctly', () => {
13 | renderer.create();
14 | });
15 |
--------------------------------------------------------------------------------
/metro.config.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Metro configuration for React Native
3 | * https://github.com/facebook/react-native
4 | *
5 | * @format
6 | */
7 |
8 | module.exports = {
9 | transformer: {
10 | getTransformOptions: async () => ({
11 | transform: {
12 | experimentalImportSupport: false,
13 | inlineRequires: false,
14 | },
15 | }),
16 | },
17 | };
18 |
--------------------------------------------------------------------------------
/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/src/store/index.js:
--------------------------------------------------------------------------------
1 | import {
2 | createStore,
3 | applyMiddleware, //使用redux 中间件
4 | compose
5 | } from 'redux';
6 | import reducer from './reducer';
7 | import thunk from 'redux-thunk'
8 |
9 | const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
10 | const enhancer = composeEnhancers(applyMiddleware(thunk));
11 |
12 | const store = createStore(
13 | reducer,
14 | enhancer
15 | );
16 |
17 | export default store;
--------------------------------------------------------------------------------
/android/app/src/main/java/com/react_blibli/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.react_blibli;
2 |
3 | import com.facebook.react.ReactActivity;
4 |
5 | public class MainActivity extends ReactActivity {
6 |
7 | /**
8 | * Returns the name of the main component registered from JavaScript. This is used to schedule
9 | * rendering of the component.
10 | */
11 | @Override
12 | protected String getMainComponentName() {
13 | return "react_blibli";
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/ios/react_blibli/AppDelegate.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Facebook, Inc. and its affiliates.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | #import
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (nonatomic, strong) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ios/react_blibli/main.m:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Facebook, Inc. and its affiliates.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | #import
9 |
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/android/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
--------------------------------------------------------------------------------
/src/store/reducer.js:
--------------------------------------------------------------------------------
1 | // const defaultState = {
2 | // locked: false
3 | // }
4 |
5 | // export default (state = defaultState, action) => {
6 | // //reduser里只能接受state 不能直接改变state
7 | // //reduser是纯函数
8 | // console.warn(action.value);
9 |
10 | // // if (action.type === 'changeTabLock') {
11 | // let { ...newState } = state; //先拷贝一份state
12 | // // let newState = JSON.parse(JSON.stringify(state)); // 深度拷贝
13 | // console.warn(newState, '----------');
14 | // newState.locked = action.value;
15 | // return newState
16 | // // }
17 |
18 | // // return state
19 | // }
--------------------------------------------------------------------------------
/android/app/build_defs.bzl:
--------------------------------------------------------------------------------
1 | """Helper definitions to glob .aar and .jar targets"""
2 |
3 | def create_aar_targets(aarfiles):
4 | for aarfile in aarfiles:
5 | name = "aars__" + aarfile[aarfile.rindex("/") + 1:aarfile.rindex(".aar")]
6 | lib_deps.append(":" + name)
7 | android_prebuilt_aar(
8 | name = name,
9 | aar = aarfile,
10 | )
11 |
12 | def create_jar_targets(jarfiles):
13 | for jarfile in jarfiles:
14 | name = "jars__" + jarfile[jarfile.rindex("/") + 1:jarfile.rindex(".jar")]
15 | lib_deps.append(":" + name)
16 | prebuilt_jar(
17 | name = name,
18 | binary_jar = jarfile,
19 | )
20 |
--------------------------------------------------------------------------------
/ios/react_blibli/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "29x29",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "29x29",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "40x40",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "40x40",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "60x60",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "60x60",
31 | "scale" : "3x"
32 | }
33 | ],
34 | "info" : {
35 | "version" : 1,
36 | "author" : "xcode"
37 | }
38 | }
--------------------------------------------------------------------------------
/ios/react_blibliTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 |
24 |
25 |
--------------------------------------------------------------------------------
/ios/react_blibli-tvOSTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 |
24 |
25 |
--------------------------------------------------------------------------------
/android/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m
13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
14 |
15 | # When configured, Gradle will run in incubating parallel mode.
16 | # This option should only be used with decoupled projects. More details, visit
17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18 | # org.gradle.parallel=true
19 |
20 | android.useAndroidX=true
21 | android.enableJetifier=true
22 |
--------------------------------------------------------------------------------
/src/components/MemberBuy/FiveList.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import {
3 | View,
4 | Text,
5 | FlatList,
6 | Image
7 | } from 'react-native'
8 |
9 | const FiveList = (props) => {
10 | return (
11 |
12 | {
16 | return (
17 |
21 |
22 | {item.name}
23 |
24 | )
25 | }}
26 | />
27 |
28 | )
29 | }
30 |
31 | export default FiveList
--------------------------------------------------------------------------------
/src/components/MemberBuy/Swipe.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import {
3 | View,
4 | StyleSheet,
5 | Image,
6 | // Carousel,
7 | Dimensions
8 | } from 'react-native'
9 | import Carousel from 'react-native-banner-carousel';
10 | import { hidden } from 'colorette';
11 | const BannerWidth = Dimensions.get('window').width;
12 |
13 | const Swipe = (props) => {
14 | return (
15 |
16 |
24 | {props.banners.map((banners, index) => props.renderPage(banners, index))}
25 |
26 |
27 |
28 | )
29 |
30 | }
31 | const styles = StyleSheet.create({
32 |
33 |
34 | })
35 | export default Swipe
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # OSX
2 | #
3 | .DS_Store
4 |
5 | # Xcode
6 | #
7 | build/
8 | *.pbxuser
9 | !default.pbxuser
10 | *.mode1v3
11 | !default.mode1v3
12 | *.mode2v3
13 | !default.mode2v3
14 | *.perspectivev3
15 | !default.perspectivev3
16 | xcuserdata
17 | *.xccheckout
18 | *.moved-aside
19 | DerivedData
20 | *.hmap
21 | *.ipa
22 | *.xcuserstate
23 |
24 | # Android/IntelliJ
25 | #
26 | build/
27 | .idea
28 | .gradle
29 | local.properties
30 | *.iml
31 |
32 | # node.js
33 | #
34 | node_modules/
35 | npm-debug.log
36 | yarn-error.log
37 |
38 | # BUCK
39 | buck-out/
40 | \.buckd/
41 | *.keystore
42 | !debug.keystore
43 |
44 | # fastlane
45 | #
46 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
47 | # screenshots whenever they are needed.
48 | # For more information about the recommended setup visit:
49 | # https://docs.fastlane.tools/best-practices/source-control/
50 |
51 | */fastlane/report.xml
52 | */fastlane/Preview.html
53 | */fastlane/screenshots
54 |
55 | # Bundle artifact
56 | *.jsbundle
57 |
58 | # CocoaPods
59 | /ios/Pods/
60 |
--------------------------------------------------------------------------------
/android/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
13 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/src/components/MemberBuy/Tabs.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import {
3 | View,
4 | StyleSheet,
5 | Text,
6 | Image,
7 | // Carousel,
8 | Dimensions
9 | } from 'react-native'
10 |
11 |
12 |
13 | const Tabs = (props) => {
14 | return (
15 |
16 |
17 |
18 | 商品
19 |
20 |
21 |
22 | 推荐
23 |
24 |
25 |
26 | )
27 |
28 | }
29 | const styles = StyleSheet.create({
30 |
31 |
32 | })
33 | export default Tabs
--------------------------------------------------------------------------------
/android/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | ext {
5 | buildToolsVersion = "28.0.3"
6 | minSdkVersion = 16
7 | compileSdkVersion = 28
8 | targetSdkVersion = 28
9 | }
10 | repositories {
11 | google()
12 | jcenter()
13 | }
14 | dependencies {
15 | classpath("com.android.tools.build:gradle:3.4.2")
16 |
17 | // NOTE: Do not place your application dependencies here; they belong
18 | // in the individual module build.gradle files
19 | }
20 | }
21 |
22 | allprojects {
23 | repositories {
24 | mavenLocal()
25 | maven {
26 | // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
27 | url("$rootDir/../node_modules/react-native/android")
28 | }
29 | maven {
30 | // Android JSC is installed from npm
31 | url("$rootDir/../node_modules/jsc-android/dist")
32 | }
33 |
34 | google()
35 | jcenter()
36 | maven { url 'https://jitpack.io' }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/src/components/MemberBuy/Search.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import {
3 | View,
4 | StyleSheet,
5 | } from 'react-native'
6 |
7 | import { Item, Input, Icon, } from 'native-base';
8 |
9 |
10 | const Search = () => {
11 | return (
12 |
13 | -
14 |
15 |
16 |
17 |
18 | )
19 | }
20 | const styles = StyleSheet.create({
21 | search: {
22 | flexDirection: 'row',
23 | backgroundColor: "#EEEEEE",
24 | marginTop: 10,
25 | marginBottom: 10,
26 | width: '95%',
27 | marginLeft: "auto",
28 | marginRight: "auto",
29 | borderRadius: 100,
30 | },
31 | searchIcon: {
32 | flex: 2,
33 | textAlign: "right",
34 | fontSize: 18,
35 | marginRight: 10,
36 | color: '#F06292',
37 | },
38 | searchInput: {
39 | height: 35,
40 | flex: 5,
41 | fontSize: 10,
42 | position: "relative",
43 | top: 0
44 | },
45 |
46 | })
47 | export default Search
48 |
49 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ReactDemo1",
3 | "version": "0.0.1",
4 | "private": true,
5 | "scripts": {
6 | "android": "react-native run-android",
7 | "ios": "react-native run-ios",
8 | "start": "react-native start",
9 | "test": "jest",
10 | "lint": "eslint ."
11 | },
12 | "dependencies": {
13 | "moment": "^2.24.0",
14 | "native-base": "^2.13.8",
15 | "react": "16.9.0",
16 | "react-native": "0.61.5",
17 | "react-native-banner-carousel": "^1.0.3",
18 | "react-native-md5": "^1.0.0",
19 | "react-native-modal-dropdown": "^0.7.0",
20 | "react-native-orientation": "^3.1.3",
21 | "react-native-router-flux": "^4.0.6",
22 | "react-native-scrollable-tab-view": "^1.0.0",
23 | "react-native-tab-navigator": "^0.3.4",
24 | "react-native-vector-icons": "^6.6.0",
25 | "react-native-video": "^5.0.2"
26 | },
27 | "devDependencies": {
28 | "@babel/core": "^7.7.4",
29 | "@babel/runtime": "^7.7.4",
30 | "@react-native-community/eslint-config": "^0.0.5",
31 | "babel-jest": "^24.9.0",
32 | "eslint": "^6.7.2",
33 | "jest": "^24.9.0",
34 | "metro-react-native-babel-preset": "^0.57.0",
35 | "react-test-renderer": "16.9.0"
36 | },
37 | "jest": {
38 | "preset": "react-native"
39 | }
40 | }
--------------------------------------------------------------------------------
/src/components/MemberBuy/Top.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import {
3 | View,
4 | StyleSheet,
5 | Text
6 | } from 'react-native'
7 |
8 | import { Icon, } from 'native-base';
9 |
10 |
11 | const Top = () => {
12 | return (
13 |
14 |
15 |
16 | 会员购
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 | )
32 | }
33 | const styles = StyleSheet.create({
34 |
35 | })
36 | export default Top
37 |
38 |
--------------------------------------------------------------------------------
/android/app/BUCK:
--------------------------------------------------------------------------------
1 | # To learn about Buck see [Docs](https://buckbuild.com/).
2 | # To run your application with Buck:
3 | # - install Buck
4 | # - `npm start` - to start the packager
5 | # - `cd android`
6 | # - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"`
7 | # - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck
8 | # - `buck install -r android/app` - compile, install and run application
9 | #
10 |
11 | load(":build_defs.bzl", "create_aar_targets", "create_jar_targets")
12 |
13 | lib_deps = []
14 |
15 | create_aar_targets(glob(["libs/*.aar"]))
16 |
17 | create_jar_targets(glob(["libs/*.jar"]))
18 |
19 | android_library(
20 | name = "all-libs",
21 | exported_deps = lib_deps,
22 | )
23 |
24 | android_library(
25 | name = "app-code",
26 | srcs = glob([
27 | "src/main/java/**/*.java",
28 | ]),
29 | deps = [
30 | ":all-libs",
31 | ":build_config",
32 | ":res",
33 | ],
34 | )
35 |
36 | android_build_config(
37 | name = "build_config",
38 | package = "com.react_blibli",
39 | )
40 |
41 | android_resource(
42 | name = "res",
43 | package = "com.react_blibli",
44 | res = "src/main/res",
45 | )
46 |
47 | android_binary(
48 | name = "app",
49 | keystore = "//android/keystores:debug",
50 | manifest = "src/main/AndroidManifest.xml",
51 | package_type = "debug",
52 | deps = [
53 | ":app-code",
54 | ],
55 | )
56 |
--------------------------------------------------------------------------------
/ios/react_blibli/AppDelegate.m:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Facebook, Inc. and its affiliates.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | #import "AppDelegate.h"
9 |
10 | #import
11 | #import
12 | #import
13 |
14 | @implementation AppDelegate
15 |
16 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
17 | {
18 | RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
19 | RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
20 | moduleName:@"react_blibli"
21 | initialProperties:nil];
22 |
23 | rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];
24 |
25 | self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
26 | UIViewController *rootViewController = [UIViewController new];
27 | rootViewController.view = rootView;
28 | self.window.rootViewController = rootViewController;
29 | [self.window makeKeyAndVisible];
30 | return YES;
31 | }
32 |
33 | - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
34 | {
35 | #if DEBUG
36 | return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
37 | #else
38 | return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
39 | #endif
40 | }
41 |
42 | @end
43 |
--------------------------------------------------------------------------------
/src/components/MemberBuy/StickyHeader.js:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 | import {StyleSheet, Animated} from "react-native";
3 |
4 | /**
5 | * 滑动吸顶效果组件
6 | * @export
7 | * @class StickyHeader
8 | */
9 | export default class StickyHeader extends React.Component {
10 |
11 | static defaultProps = {
12 | stickyHeaderY: -1,
13 | stickyScrollY: new Animated.Value(0),
14 | };
15 |
16 | constructor(props) {
17 | super(props);
18 | this.state = {
19 | stickyLayoutY: 0,
20 | };
21 | }
22 |
23 | // 兼容代码,防止没有传头部高度
24 | _onLayout = (event) => {
25 | this.setState({
26 | stickyLayoutY: event.nativeEvent.layout.y,
27 | });
28 | };
29 |
30 | render() {
31 | const {stickyHeaderY, stickyScrollY, children, style} = this.props;
32 | const {stickyLayoutY} = this.state;
33 | let y = stickyHeaderY !== -1 ? stickyHeaderY : stickyLayoutY;
34 | const translateY = stickyScrollY.interpolate({
35 | inputRange: [-1, 0, y, y + 1],
36 | outputRange: [0, 0, 0, 1],
37 | });
38 |
39 | return (
40 |
49 |
50 | {children}
51 |
52 |
53 | )
54 | }
55 | }
56 |
57 | const styles = StyleSheet.create({
58 | container: {
59 | zIndex: 100
60 | },
61 | });
--------------------------------------------------------------------------------
/ios/react_blibli-tvOS/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 | LSRequiresIPhoneOS
24 |
25 | NSAppTransportSecurity
26 |
27 | NSExceptionDomains
28 |
29 | localhost
30 |
31 | NSExceptionAllowsInsecureHTTPLoads
32 |
33 |
34 |
35 |
36 | NSLocationWhenInUseUsageDescription
37 |
38 | UILaunchStoryboardName
39 | LaunchScreen
40 | UIRequiredDeviceCapabilities
41 |
42 | armv7
43 |
44 | UISupportedInterfaceOrientations
45 |
46 | UIInterfaceOrientationPortrait
47 | UIInterfaceOrientationLandscapeLeft
48 | UIInterfaceOrientationLandscapeRight
49 |
50 | UIViewControllerBasedStatusBarAppearance
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/src/components/MemberBuy/ThreeList.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import {
3 | View,
4 | StyleSheet,
5 | Image
6 | } from 'react-native'
7 |
8 | const ThreeList = (props) => {
9 | return (
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 | )
22 | }
23 | const styles = StyleSheet.create({
24 | unknown: {
25 | flexDirection: "row",
26 | },
27 | unknownOptions: {
28 | flex: 1,
29 | marginRight: 10,
30 | width: 100,
31 | // alignItems: 'center',
32 | // overflow: "hidden",
33 | // borderWidth:1,
34 | borderRadius: 5,
35 | marginTop: 10
36 |
37 | },
38 | unknownThree: {
39 | marginRight: 0
40 | },
41 | unknownOptionsOne: {
42 |
43 | },
44 | unknownOptionsTwo: {
45 | fontSize: 10
46 | },
47 | unknownOptionsThree: {
48 | position: "absolute",
49 | right: 10,
50 | bottom: 6,
51 | fontSize: 20
52 | }
53 |
54 | })
55 | export default ThreeList
--------------------------------------------------------------------------------
/src/components/MemberBuy/TabsList.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import GoodList from '../../components/MemberBuy/GoodList';
3 | import UnGoodList from '../../components/MemberBuy/UnGoodList';
4 | import {
5 | View,
6 | StyleSheet,
7 | Image,
8 | Dimensions,
9 | Text
10 | } from 'react-native'
11 | import { Container, Item, Input, Header, Tab, Tabs, ScrollableTab, Icon, } from 'native-base';
12 | const BannerWidth = Dimensions.get('window').width;
13 |
14 | const TabsList = (props) => {
15 | return (
16 |
17 | {/* {this.state.isShow ? this._renderView : null} */}
18 | props.list.tabChange()}
25 | tabBarUnderlineStyle={{ backgroundColor: "red", width: 10, marginLeft: "7.5%" }}
26 | renderTabBar={() => }>
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 | )
39 | }
40 | const styles = StyleSheet.create({
41 |
42 | })
43 | export default TabsList
--------------------------------------------------------------------------------
/android/app/src/main/res/raw/node_modules_reactnativevectoricons_glyphmaps_evilicons.json:
--------------------------------------------------------------------------------
1 | {
2 | "archive": 61696,
3 | "arrow-down": 61697,
4 | "arrow-left": 61698,
5 | "arrow-right": 61699,
6 | "arrow-up": 61700,
7 | "bell": 61701,
8 | "calendar": 61702,
9 | "camera": 61703,
10 | "cart": 61704,
11 | "chart": 61705,
12 | "check": 61706,
13 | "chevron-down": 61707,
14 | "chevron-left": 61708,
15 | "chevron-right": 61709,
16 | "chevron-up": 61710,
17 | "clock": 61711,
18 | "close": 61712,
19 | "close-o": 61713,
20 | "comment": 61714,
21 | "credit-card": 61715,
22 | "envelope": 61716,
23 | "exclamation": 61717,
24 | "external-link": 61718,
25 | "eye": 61719,
26 | "gear": 61720,
27 | "heart": 61721,
28 | "image": 61722,
29 | "like": 61723,
30 | "link": 61724,
31 | "location": 61725,
32 | "lock": 61726,
33 | "minus": 61727,
34 | "navicon": 61728,
35 | "paperclip": 61729,
36 | "pencil": 61730,
37 | "play": 61731,
38 | "plus": 61732,
39 | "pointer": 61733,
40 | "question": 61734,
41 | "redo": 61735,
42 | "refresh": 61736,
43 | "retweet": 61737,
44 | "sc-facebook": 61738,
45 | "sc-github": 61739,
46 | "sc-google-plus": 61740,
47 | "sc-instagram": 61741,
48 | "sc-linkedin": 61742,
49 | "sc-odnoklassniki": 61743,
50 | "sc-pinterest": 61744,
51 | "sc-skype": 61745,
52 | "sc-soundcloud": 61746,
53 | "sc-telegram": 61747,
54 | "sc-tumblr": 61748,
55 | "sc-twitter": 61749,
56 | "sc-vimeo": 61750,
57 | "sc-vk": 61751,
58 | "sc-youtube": 61752,
59 | "search": 61753,
60 | "share-apple": 61754,
61 | "share-google": 61755,
62 | "spinner": 61756,
63 | "spinner-2": 61757,
64 | "spinner-3": 61758,
65 | "star": 61759,
66 | "tag": 61760,
67 | "trash": 61761,
68 | "trophy": 61762,
69 | "undo": 61763,
70 | "unlock": 61764,
71 | "user": 61765
72 | }
--------------------------------------------------------------------------------
/src/pages/Classify.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import { View, Text, FlatList, Image, StyleSheet } from 'react-native'
3 |
4 | class Classify extends Component {
5 | constructor(props) {
6 | super(props);
7 | this.state = {
8 | channels: [], // 频道列表
9 | }
10 |
11 | }
12 | render() {
13 | return (
14 |
15 | i} // 解决 key 问题
18 | renderItem={({ item }) => this.renderItem(item)} // 调用方法,去渲染每一项
19 | numColumns={4} // 多列布局(4列)
20 | //columnWrapperStyle={{}} // 每一行容器的样式
21 | />
22 |
23 |
24 | );
25 | }
26 |
27 | componentWillMount() {
28 | this.getChannels()
29 | }
30 |
31 | // 获取频道列表
32 | getChannels = () => {
33 | const url = 'https://app.bilibili.com/x/channel/square?appkey=1d8b6e7d45233436&build=5370000&channel=huawei&login_event=1&mobi_app=android&platform=android&ts=1557534415&sign=1f43ef46c4bf2d4d738ab7af0f809b3d'
34 | //在RN中要发送网络请求,可以直接用fetch()
35 | fetch(url)
36 | .then(res => res.json())
37 | .then(data => {
38 | this.setState((state) => {
39 | return {
40 | isloading: false,
41 | channels: state.channels.concat(data.data.region)
42 | }
43 | })
44 | })
45 | }
46 |
47 | // 渲染每一个列表
48 | renderItem = (item) => {
49 | return
50 |
51 |
52 | {item.name}
53 |
54 |
55 |
56 | }
57 | }
58 |
59 | const styles = StyleSheet.create({
60 | channelName: {
61 | fontSize: 12,
62 | },
63 | })
64 |
65 | export default Classify;
--------------------------------------------------------------------------------
/src/utils/utils.js:
--------------------------------------------------------------------------------
1 | import md5 from "react-native-md5";
2 |
3 | //得到sign的方法
4 | get_sign = (params, key) => {
5 | var s_keys = [];
6 | for (var i in params) {
7 | s_keys.push(i);
8 | }
9 | s_keys.sort();
10 | var data = "";
11 | for (var i = 0; i < s_keys.length; i++) {
12 | // encodeURIComponent 返回的转义数字必须为大写( 如 %2F )
13 | data += (data ? "&" : "") + s_keys[i] + "=" + encodeURIComponent(params[s_keys[i]]);
14 | }
15 | return {
16 | "sign": md5.hex_md5(data + key),
17 | "params": data
18 | };
19 | }
20 |
21 | //获取视频详情参数
22 | export const getVideoDetilUrl = (aid) => {
23 | let paramsObj = {
24 | // aid: "78126101",
25 | aid: aid,
26 | appkey: "1d8b6e7d45233436",
27 | build: "5480400",
28 | ts: new Date().getTime()
29 | }
30 | let appserct = "560c52ccd288fed045859ed18bffd973";
31 |
32 | let signObj = get_sign(paramsObj, appserct);
33 | console.log(signObj);
34 | let path = "https://app.bilibili.com/x/v2/view";
35 | let data = signObj.params;
36 | let sign = signObj.sign;
37 | let url = `${path}?${data}&sign=${sign}`;
38 | return url;
39 | }
40 |
41 | //获取视频播放参数 视频解析
42 | export const getVideoPlayerUrl = (cid, qn = 64) => {
43 | let appserctV2 = "aHRmhWMLkdeMuILqORnYZocwMBpMEOdt";
44 |
45 | let vedioParamsObjV2 = {
46 | appkey: "iVGUTjsxvpLeuDCf",
47 | build: "500001",
48 | buvid: "C0928256-085D-4722-A38F-2E343710C8B3155817infoc",
49 | cid: cid,
50 | device: "android",
51 | otype: "json",
52 | platform: "android",
53 | qn: qn
54 | }
55 | let vedioSignObjV2 = get_sign(vedioParamsObjV2, appserctV2);
56 | let vedioPathV2 = "https://app.bilibili.com/playurl";
57 | let vedioV2Data = vedioSignObjV2.params;
58 | let vedioV2Sign = vedioSignObjV2.sign;
59 | let vedioV2Url = `${vedioPathV2}?${vedioV2Data}&sign=${vedioV2Sign}`;
60 | return vedioV2Url;
61 | }
62 |
63 |
64 |
65 | // 数字格式化
66 | export const numFormat = (num, mode = 0) => {
67 | let formatNum = '';
68 | if (mode === 0) {
69 | formatNum = num >= 10000 ? (num / 10000).toFixed(1) + '万' : num
70 | }
71 | return formatNum;
72 | }
--------------------------------------------------------------------------------
/ios/react_blibliTests/react_blibliTests.m:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Facebook, Inc. and its affiliates.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | #import
9 | #import
10 |
11 | #import
12 | #import
13 |
14 | #define TIMEOUT_SECONDS 600
15 | #define TEXT_TO_LOOK_FOR @"Welcome to React"
16 |
17 | @interface react_blibliTests : XCTestCase
18 |
19 | @end
20 |
21 | @implementation react_blibliTests
22 |
23 | - (BOOL)findSubviewInView:(UIView *)view matching:(BOOL(^)(UIView *view))test
24 | {
25 | if (test(view)) {
26 | return YES;
27 | }
28 | for (UIView *subview in [view subviews]) {
29 | if ([self findSubviewInView:subview matching:test]) {
30 | return YES;
31 | }
32 | }
33 | return NO;
34 | }
35 |
36 | - (void)testRendersWelcomeScreen
37 | {
38 | UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController];
39 | NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS];
40 | BOOL foundElement = NO;
41 |
42 | __block NSString *redboxError = nil;
43 | #ifdef DEBUG
44 | RCTSetLogFunction(^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) {
45 | if (level >= RCTLogLevelError) {
46 | redboxError = message;
47 | }
48 | });
49 | #endif
50 |
51 | while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) {
52 | [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
53 | [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
54 |
55 | foundElement = [self findSubviewInView:vc.view matching:^BOOL(UIView *view) {
56 | if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) {
57 | return YES;
58 | }
59 | return NO;
60 | }];
61 | }
62 |
63 | #ifdef DEBUG
64 | RCTSetLogFunction(RCTDefaultLogFunction);
65 | #endif
66 |
67 | XCTAssertNil(redboxError, @"RedBox error: %@", redboxError);
68 | XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS);
69 | }
70 |
71 |
72 | @end
73 |
--------------------------------------------------------------------------------
/src/components/MemberBuy/UnGoodList.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import {
3 | View,
4 | Text,
5 | FlatList,
6 | Image,
7 |
8 |
9 | } from 'react-native'
10 |
11 | class GoodList extends Component {
12 | constructor(props) {
13 | super(props);
14 | this.state = {
15 | list: 0
16 | }
17 |
18 | }
19 | static defaultProps = {
20 | list: []
21 | }
22 | render() {
23 |
24 |
25 | return (
26 |
27 | this.renderItem(item)}
32 | ItemSeparatorComponent={this.renderSeparator}
33 | />
34 |
35 | );
36 | }
37 |
38 | renderItem(item) {
39 | return (
40 |
41 |
42 |
43 |
44 |
45 |
46 | {item.title}
47 |
48 |
49 | ¥{item.price[0]}
50 | {item.want}
51 |
52 |
53 |
54 | )
55 | }
56 | getList() {
57 |
58 | let arr=[]
59 | this.props.list.filter(item => {
60 | if (item.tagName == "展演") {
61 |
62 | arr.push(item)
63 | }
64 | })
65 |
66 |
67 |
68 | return arr
69 | }
70 | componentDidMount() {
71 |
72 | }
73 |
74 | }
75 |
76 | export default GoodList;
--------------------------------------------------------------------------------
/.flowconfig:
--------------------------------------------------------------------------------
1 | [ignore]
2 | ; We fork some components by platform
3 | .*/*[.]android.js
4 |
5 | ; Ignore "BUCK" generated dirs
6 | /\.buckd/
7 |
8 | ; Ignore polyfills
9 | node_modules/react-native/Libraries/polyfills/.*
10 |
11 | ; These should not be required directly
12 | ; require from fbjs/lib instead: require('fbjs/lib/warning')
13 | node_modules/warning/.*
14 |
15 | ; Flow doesn't support platforms
16 | .*/Libraries/Utilities/LoadingView.js
17 |
18 | [untyped]
19 | .*/node_modules/@react-native-community/cli/.*/.*
20 |
21 | [include]
22 |
23 | [libs]
24 | node_modules/react-native/Libraries/react-native/react-native-interface.js
25 | node_modules/react-native/flow/
26 |
27 | [options]
28 | emoji=true
29 |
30 | esproposal.optional_chaining=enable
31 | esproposal.nullish_coalescing=enable
32 |
33 | module.file_ext=.js
34 | module.file_ext=.json
35 | module.file_ext=.ios.js
36 |
37 | munge_underscores=true
38 |
39 | module.name_mapper='^react-native$' -> '/node_modules/react-native/Libraries/react-native/react-native-implementation'
40 | module.name_mapper='^react-native/\(.*\)$' -> '/node_modules/react-native/\1'
41 | module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> '/node_modules/react-native/Libraries/Image/RelativeImageStub'
42 |
43 | suppress_type=$FlowIssue
44 | suppress_type=$FlowFixMe
45 | suppress_type=$FlowFixMeProps
46 | suppress_type=$FlowFixMeState
47 |
48 | suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\)
49 | suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\)?:? #[0-9]+
50 | suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError
51 |
52 | [lints]
53 | sketchy-null-number=warn
54 | sketchy-null-mixed=warn
55 | sketchy-number=warn
56 | untyped-type-import=warn
57 | nonstrict-import=warn
58 | deprecated-type=warn
59 | unsafe-getters-setters=warn
60 | inexact-spread=warn
61 | unnecessary-invariant=warn
62 | signature-verification-failure=warn
63 | deprecated-utility=error
64 |
65 | [strict]
66 | deprecated-type
67 | nonstrict-import
68 | sketchy-null
69 | unclear-type
70 | unsafe-getters-setters
71 | untyped-import
72 | untyped-type-import
73 |
74 | [version]
75 | ^0.105.0
76 |
--------------------------------------------------------------------------------
/android/app/src/main/res/raw/node_modules_reactnativevectoricons_glyphmaps_zocial.json:
--------------------------------------------------------------------------------
1 | {
2 | "acrobat": 61696,
3 | "amazon": 61697,
4 | "android": 61698,
5 | "angellist": 61699,
6 | "aol": 61700,
7 | "appnet": 61701,
8 | "appstore": 61702,
9 | "bitbucket": 61703,
10 | "bitcoin": 61704,
11 | "blogger": 61705,
12 | "buffer": 61706,
13 | "cal": 61707,
14 | "call": 61708,
15 | "cart": 61709,
16 | "chrome": 61710,
17 | "cloudapp": 61711,
18 | "creativecommons": 61712,
19 | "delicious": 61713,
20 | "digg": 61714,
21 | "disqus": 61715,
22 | "dribbble": 61716,
23 | "dropbox": 61717,
24 | "drupal": 61718,
25 | "dwolla": 61720,
26 | "email": 61721,
27 | "eventasaurus": 61722,
28 | "eventbrite": 61723,
29 | "eventful": 61724,
30 | "evernote": 61725,
31 | "facebook": 61726,
32 | "fivehundredpx": 61727,
33 | "flattr": 61728,
34 | "flickr": 61729,
35 | "forrst": 61730,
36 | "foursquare": 61731,
37 | "github": 61732,
38 | "gmail": 61733,
39 | "google": 61734,
40 | "googleplay": 61735,
41 | "googleplus": 61736,
42 | "gowalla": 61737,
43 | "grooveshark": 61738,
44 | "guest": 61739,
45 | "html5": 61740,
46 | "ie": 61741,
47 | "instagram": 61742,
48 | "instapaper": 61743,
49 | "intensedebate": 61744,
50 | "itunes": 61745,
51 | "klout": 61746,
52 | "lanyrd": 61747,
53 | "lastfm": 61748,
54 | "lego": 61749,
55 | "linkedin": 61750,
56 | "lkdto": 61751,
57 | "logmein": 61752,
58 | "macstore": 61753,
59 | "meetup": 61754,
60 | "myspace": 61755,
61 | "ninetyninedesigns": 61756,
62 | "openid": 61757,
63 | "opentable": 61758,
64 | "paypal": 61759,
65 | "persona": 61796,
66 | "pinboard": 61760,
67 | "pinterest": 61761,
68 | "plancast": 61762,
69 | "plurk": 61763,
70 | "pocket": 61764,
71 | "podcast": 61765,
72 | "posterous": 61766,
73 | "print": 61767,
74 | "quora": 61768,
75 | "reddit": 61769,
76 | "rss": 61770,
77 | "scribd": 61771,
78 | "skype": 61772,
79 | "smashing": 61773,
80 | "songkick": 61774,
81 | "soundcloud": 61775,
82 | "spotify": 61776,
83 | "stackoverflow": 61777,
84 | "statusnet": 61778,
85 | "steam": 61779,
86 | "stripe": 61780,
87 | "stumbleupon": 61781,
88 | "tumblr": 61782,
89 | "twitter": 61783,
90 | "viadeo": 61784,
91 | "vimeo": 61785,
92 | "vk": 61786,
93 | "weibo": 61787,
94 | "wikipedia": 61788,
95 | "windows": 61789,
96 | "wordpress": 61790,
97 | "xing": 61791,
98 | "yahoo": 61792,
99 | "ycombinator": 61793,
100 | "yelp": 61794,
101 | "youtube": 61795
102 | }
--------------------------------------------------------------------------------
/android/app/src/main/java/com/react_blibli/MainApplication.java:
--------------------------------------------------------------------------------
1 | package com.react_blibli;
2 |
3 | import android.app.Application;
4 | import android.content.Context;
5 | import com.facebook.react.PackageList;
6 | import com.facebook.react.ReactApplication;
7 | import com.facebook.react.ReactNativeHost;
8 | import com.facebook.react.ReactPackage;
9 | import com.facebook.soloader.SoLoader;
10 | import java.lang.reflect.InvocationTargetException;
11 | import java.util.List;
12 |
13 | public class MainApplication extends Application implements ReactApplication {
14 |
15 | private final ReactNativeHost mReactNativeHost =
16 | new ReactNativeHost(this) {
17 | @Override
18 | public boolean getUseDeveloperSupport() {
19 | return BuildConfig.DEBUG;
20 | }
21 |
22 | @Override
23 | protected List getPackages() {
24 | @SuppressWarnings("UnnecessaryLocalVariable")
25 | List packages = new PackageList(this).getPackages();
26 | // Packages that cannot be autolinked yet can be added manually here, for example:
27 | // packages.add(new MyReactNativePackage());
28 | return packages;
29 | }
30 |
31 | @Override
32 | protected String getJSMainModuleName() {
33 | return "index";
34 | }
35 | };
36 |
37 | @Override
38 | public ReactNativeHost getReactNativeHost() {
39 | return mReactNativeHost;
40 | }
41 |
42 | @Override
43 | public void onCreate() {
44 | super.onCreate();
45 | SoLoader.init(this, /* native exopackage */ false);
46 | initializeFlipper(this); // Remove this line if you don't want Flipper enabled
47 | }
48 |
49 | /**
50 | * Loads Flipper in React Native templates.
51 | *
52 | * @param context
53 | */
54 | private static void initializeFlipper(Context context) {
55 | if (BuildConfig.DEBUG) {
56 | try {
57 | /*
58 | We use reflection here to pick up the class that initializes Flipper,
59 | since Flipper library is not available in release mode
60 | */
61 | Class> aClass = Class.forName("com.facebook.flipper.ReactNativeFlipper");
62 | aClass.getMethod("initializeFlipper", Context.class).invoke(null, context);
63 | } catch (ClassNotFoundException e) {
64 | e.printStackTrace();
65 | } catch (NoSuchMethodException e) {
66 | e.printStackTrace();
67 | } catch (IllegalAccessException e) {
68 | e.printStackTrace();
69 | } catch (InvocationTargetException e) {
70 | e.printStackTrace();
71 | }
72 | }
73 | }
74 | }
75 |
--------------------------------------------------------------------------------
/ios/react_blibli/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleDisplayName
8 | react_blibli
9 | CFBundleExecutable
10 | $(EXECUTABLE_NAME)
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | $(PRODUCT_NAME)
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1
25 | LSRequiresIPhoneOS
26 |
27 | NSAppTransportSecurity
28 |
29 | NSAllowsArbitraryLoads
30 |
31 | NSExceptionDomains
32 |
33 | localhost
34 |
35 | NSExceptionAllowsInsecureHTTPLoads
36 |
37 |
38 |
39 |
40 | NSLocationWhenInUseUsageDescription
41 |
42 | UILaunchStoryboardName
43 | LaunchScreen
44 | UIRequiredDeviceCapabilities
45 |
46 | armv7
47 |
48 | UISupportedInterfaceOrientations
49 |
50 | UIInterfaceOrientationPortrait
51 | UIInterfaceOrientationLandscapeLeft
52 | UIInterfaceOrientationLandscapeRight
53 |
54 | UIViewControllerBasedStatusBarAppearance
55 |
56 | UIAppFonts
57 |
58 | AntDesign.ttf
59 | Entypo.ttf
60 | EvilIcons.ttf
61 | Feather.ttf
62 | FontAwesome.ttf
63 | FontAwesome5_Brands.ttf
64 | FontAwesome5_Regular.ttf
65 | FontAwesome5_Solid.ttf
66 | Fontisto.ttf
67 | Foundation.ttf
68 | Ionicons.ttf
69 | MaterialCommunityIcons.ttf
70 | MaterialIcons.ttf
71 | Octicons.ttf
72 | Roboto_medium.ttf
73 | Roboto.ttf
74 | rubicon-icon-font.ttf
75 | SimpleLineIcons.ttf
76 | Zocial.ttf
77 |
78 |
79 |
80 |
--------------------------------------------------------------------------------
/ios/Podfile:
--------------------------------------------------------------------------------
1 | platform :ios, '9.0'
2 | require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
3 |
4 | target 'react_blibli' do
5 | # Pods for react_blibli
6 | pod 'FBLazyVector', :path => "../node_modules/react-native/Libraries/FBLazyVector"
7 | pod 'FBReactNativeSpec', :path => "../node_modules/react-native/Libraries/FBReactNativeSpec"
8 | pod 'RCTRequired', :path => "../node_modules/react-native/Libraries/RCTRequired"
9 | pod 'RCTTypeSafety', :path => "../node_modules/react-native/Libraries/TypeSafety"
10 | pod 'React', :path => '../node_modules/react-native/'
11 | pod 'React-Core', :path => '../node_modules/react-native/'
12 | pod 'React-CoreModules', :path => '../node_modules/react-native/React/CoreModules'
13 | pod 'React-Core/DevSupport', :path => '../node_modules/react-native/'
14 | pod 'React-RCTActionSheet', :path => '../node_modules/react-native/Libraries/ActionSheetIOS'
15 | pod 'React-RCTAnimation', :path => '../node_modules/react-native/Libraries/NativeAnimation'
16 | pod 'React-RCTBlob', :path => '../node_modules/react-native/Libraries/Blob'
17 | pod 'React-RCTImage', :path => '../node_modules/react-native/Libraries/Image'
18 | pod 'React-RCTLinking', :path => '../node_modules/react-native/Libraries/LinkingIOS'
19 | pod 'React-RCTNetwork', :path => '../node_modules/react-native/Libraries/Network'
20 | pod 'React-RCTSettings', :path => '../node_modules/react-native/Libraries/Settings'
21 | pod 'React-RCTText', :path => '../node_modules/react-native/Libraries/Text'
22 | pod 'React-RCTVibration', :path => '../node_modules/react-native/Libraries/Vibration'
23 | pod 'React-Core/RCTWebSocket', :path => '../node_modules/react-native/'
24 |
25 | pod 'React-cxxreact', :path => '../node_modules/react-native/ReactCommon/cxxreact'
26 | pod 'React-jsi', :path => '../node_modules/react-native/ReactCommon/jsi'
27 | pod 'React-jsiexecutor', :path => '../node_modules/react-native/ReactCommon/jsiexecutor'
28 | pod 'React-jsinspector', :path => '../node_modules/react-native/ReactCommon/jsinspector'
29 | pod 'ReactCommon/jscallinvoker', :path => "../node_modules/react-native/ReactCommon"
30 | pod 'ReactCommon/turbomodule/core', :path => "../node_modules/react-native/ReactCommon"
31 | pod 'Yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
32 |
33 | pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
34 | pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
35 | pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
36 |
37 | target 'react_blibliTests' do
38 | inherit! :search_paths
39 | # Pods for testing
40 | end
41 |
42 | use_native_modules!
43 | end
44 |
45 | target 'react_blibli-tvOS' do
46 | # Pods for react_blibli-tvOS
47 |
48 | target 'react_blibli-tvOSTests' do
49 | inherit! :search_paths
50 | # Pods for testing
51 | end
52 |
53 | end
54 |
--------------------------------------------------------------------------------
/router.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react'
2 | import { Router, Stack, Scene, Tabs } from 'react-native-router-flux'
3 | import App from './App.js'
4 |
5 | import HomePage from './src/pages/HomePage';
6 | import Classify from './src/pages/Classify';
7 | import MemberBuy from './src/pages/MemberBuy';
8 | import Dynamic from './src/pages/Search';
9 |
10 | //视频播放页面
11 | import VideoPage from './src/pages/vidoe_player/VideoPage';
12 | import Diantai from './src/pages/home_sub_pages/home_live/diantai'
13 | import BanMore from './src/components/BanMore.js';
14 |
15 | class AppRouter extends Component {
16 | render() {
17 | return (
18 |
19 |
20 | {/* hideNavBar */}
21 |
22 |
23 |
24 |
25 |
26 | {/*
27 |
42 |
47 |
48 |
53 |
54 |
59 |
64 |
65 | */}
66 |
67 | );
68 | }
69 | }
70 |
71 | export default AppRouter;
72 |
73 |
--------------------------------------------------------------------------------
/android/gradlew.bat:
--------------------------------------------------------------------------------
1 | @rem
2 | @rem Copyright 2015 the original author or authors.
3 | @rem
4 | @rem Licensed under the Apache License, Version 2.0 (the "License");
5 | @rem you may not use this file except in compliance with the License.
6 | @rem You may obtain a copy of the License at
7 | @rem
8 | @rem http://www.apache.org/licenses/LICENSE-2.0
9 | @rem
10 | @rem Unless required by applicable law or agreed to in writing, software
11 | @rem distributed under the License is distributed on an "AS IS" BASIS,
12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | @rem See the License for the specific language governing permissions and
14 | @rem limitations under the License.
15 | @rem
16 |
17 | @if "%DEBUG%" == "" @echo off
18 | @rem ##########################################################################
19 | @rem
20 | @rem Gradle startup script for Windows
21 | @rem
22 | @rem ##########################################################################
23 |
24 | @rem Set local scope for the variables with windows NT shell
25 | if "%OS%"=="Windows_NT" setlocal
26 |
27 | set DIRNAME=%~dp0
28 | if "%DIRNAME%" == "" set DIRNAME=.
29 | set APP_BASE_NAME=%~n0
30 | set APP_HOME=%DIRNAME%
31 |
32 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
33 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
34 |
35 | @rem Find java.exe
36 | if defined JAVA_HOME goto findJavaFromJavaHome
37 |
38 | set JAVA_EXE=java.exe
39 | %JAVA_EXE% -version >NUL 2>&1
40 | if "%ERRORLEVEL%" == "0" goto init
41 |
42 | echo.
43 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
44 | echo.
45 | echo Please set the JAVA_HOME variable in your environment to match the
46 | echo location of your Java installation.
47 |
48 | goto fail
49 |
50 | :findJavaFromJavaHome
51 | set JAVA_HOME=%JAVA_HOME:"=%
52 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
53 |
54 | if exist "%JAVA_EXE%" goto init
55 |
56 | echo.
57 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
58 | echo.
59 | echo Please set the JAVA_HOME variable in your environment to match the
60 | echo location of your Java installation.
61 |
62 | goto fail
63 |
64 | :init
65 | @rem Get command-line arguments, handling Windows variants
66 |
67 | if not "%OS%" == "Windows_NT" goto win9xME_args
68 |
69 | :win9xME_args
70 | @rem Slurp the command line arguments.
71 | set CMD_LINE_ARGS=
72 | set _SKIP=2
73 |
74 | :win9xME_args_slurp
75 | if "x%~1" == "x" goto execute
76 |
77 | set CMD_LINE_ARGS=%*
78 |
79 | :execute
80 | @rem Setup the command line
81 |
82 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
83 |
84 | @rem Execute Gradle
85 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
86 |
87 | :end
88 | @rem End local scope for the variables with windows NT shell
89 | if "%ERRORLEVEL%"=="0" goto mainEnd
90 |
91 | :fail
92 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
93 | rem the _cmd.exe /c_ return code!
94 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
95 | exit /b 1
96 |
97 | :mainEnd
98 | if "%OS%"=="Windows_NT" endlocal
99 |
100 | :omega
101 |
--------------------------------------------------------------------------------
/src/components/MemberBuy/GoodList.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import {
3 | View,
4 | Text,
5 | ScrollView,
6 | FlatList,
7 | Image,
8 | StyleSheet,
9 | TextInput,
10 | Dimensions,
11 | Button
12 |
13 |
14 | } from 'react-native'
15 | import { Colors } from 'react-native/Libraries/NewAppScreen';
16 | const BannerWidth = Dimensions.get('window').width;
17 | class GoodList extends Component {
18 | constructor(props) {
19 | super(props);
20 | this.state = {
21 | list: 0
22 | }
23 | }
24 | static defaultProps = {
25 | list: []
26 | }
27 | render() {
28 |
29 |
30 | return (
31 |
32 | this.renderItem(item)}
37 | ItemSeparatorComponent={this.renderSeparator}
38 | // onEndReachedThreshold={0.5}
39 | // onEndReached={this.loadNextPage}
40 | />
41 | {/*
42 | 加载更多 */}
43 |
44 | );
45 | }
46 |
47 | renderItem(item) {
48 | return (
49 |
50 |
51 |
52 |
53 |
54 |
55 | {item.title}
56 |
57 |
58 | ¥{item.price[0]}
59 | {item.like}人想要
60 |
61 |
62 |
63 | //
64 | //
65 | //
66 | //
67 | //
68 | // {item.title}
69 | //
70 | //
71 | // ¥{item.price[0]}
72 | // {item.like}人想要
73 | //
74 | //
75 | )
76 | }
77 | getList() {
78 | let arr = this.props.list.map(item => {
79 | if (item.tagName == "商品") {
80 | return item
81 | }
82 | })
83 |
84 | return arr
85 | }
86 | componentDidMount() {
87 |
88 | }
89 |
90 | }
91 |
92 | export default GoodList;
--------------------------------------------------------------------------------
/ios/react_blibli/Base.lproj/LaunchScreen.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
21 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/src/pages/HomePage.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import { View, Text, StyleSheet } from 'react-native'
3 |
4 | import { Container, Tab, Tabs, ScrollableTab } from 'native-base';
5 |
6 | import Live from './home_sub_pages/Live';
7 | import Recommended from './home_sub_pages/Recommended';
8 | import Hot from './home_sub_pages/Hot';
9 | import Bangumi from './home_sub_pages/Bangumi';
10 | import Move from './home_sub_pages/Move';
11 | import SeventyYears from './home_sub_pages/SeventyYears';
12 |
13 |
14 | class HomePage extends Component {
15 | constructor(props) {
16 | super(props);
17 | this.state = {
18 | scrollTabViewLocked: false
19 | }
20 | }
21 |
22 | _lockSlide = () => {
23 | this.setState({
24 | scrollTabViewLocked: true
25 | })
26 | }
27 | _openSlide = () => {
28 | this.setState({
29 | scrollTabViewLocked: true
30 | })
31 | }
32 | render() {
33 | return (
34 |
35 | {/* */}
36 | }>
42 |
48 |
49 |
50 |
56 |
57 |
58 |
64 |
65 |
66 |
72 |
73 |
74 |
80 |
81 |
82 |
88 |
89 |
90 |
91 |
92 | )
93 | }
94 | }
95 | const styles = StyleSheet.create({
96 | tabBarUnderlineStyle: {
97 | backgroundColor: '#fb7b9e',
98 | marginLeft: '4%',
99 | height: 2.5,
100 | width: 20
101 | },
102 | tabStyle: {
103 | backgroundColor: '#fff',
104 | // alignItems: 'center',
105 | paddingLeft: 10,
106 | paddingRight: 10
107 | },
108 | activeTabStyle: {
109 | backgroundColor: '#fff',
110 | paddingLeft: 10,
111 | paddingRight: 10
112 | },
113 | textStyle: {
114 | color: '#444'
115 | },
116 | activeTextStyle: {
117 | color: '#fb7b9e',
118 | fontWeight: 'bold'
119 | },
120 | tabsContainerStyle: {
121 | // width: 400,
122 | backgroundColor: '#fff'
123 | }
124 | })
125 |
126 | export default HomePage;
--------------------------------------------------------------------------------
/src/components/ListItemUI.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import { View, Text, StyleSheet, Image } from 'react-native';
3 | import { numFormat } from '../utils/utils';
4 |
5 | class ListItemUI extends Component {
6 | constructor(props) {
7 | super(props);
8 | this.state = {}
9 | }
10 | render() {
11 | return (
12 |
13 |
14 |
16 | {this.props.time}
17 |
18 |
19 | {this.props.title}
20 |
21 |
22 |
23 | {this.props.upname}
24 |
25 |
26 |
27 | {numFormat(this.props.playNum)}
28 |
29 | {this.props.danmaku}
30 |
31 | {this.props.tags ?
32 |
33 | {this.props.tags}
34 |
35 | : null
36 | }
37 |
38 |
39 |
40 | );
41 | }
42 | }
43 |
44 | const styles = StyleSheet.create({
45 | hotItem: {
46 | height: 120,
47 | borderBottomColor: '#f4f4f4',
48 | borderBottomWidth: 0.5,
49 | padding: 10,
50 | flexDirection: 'row'
51 | },
52 | hotItemLeft: {
53 | width: '45%',
54 | height: '100%',
55 | position: 'relative'
56 | },
57 | itemImage: {
58 | width: '100%',
59 | height: '100%',
60 | borderRadius: 5
61 | },
62 | time: {
63 | position: 'absolute',
64 | bottom: 8,
65 | right: 5,
66 | fontSize: 12,
67 | padding: 4,
68 | paddingTop: 2,
69 | paddingBottom: 2,
70 | backgroundColor: 'rgba(0,0,0,0.4)',
71 | borderRadius: 2,
72 | color: '#fff'
73 | },
74 | hotItemRight: {
75 | width: '55%',
76 | height: '100%',
77 | paddingLeft: 8,
78 | justifyContent: 'space-between'
79 | },
80 | itemTitle: {
81 | fontSize: 14,
82 | color: '#000',
83 | width: '100%',
84 | overflow: 'hidden',
85 | },
86 | desc: {
87 | marginLeft: 5,
88 | marginRight: 5,
89 | fontSize: 12,
90 | color: '#c4c4c4',
91 | },
92 | rcmdReasonTextA: {
93 | marginTop: 2,
94 | paddingLeft: 2,
95 | paddingRight: 2,
96 | borderWidth: 1,
97 | borderRadius: 2,
98 | fontSize: 10,
99 | backgroundColor: '#f5992a',
100 | borderColor: '#f5992a',
101 | color: '#fff'
102 | },
103 | // rcmdReasonTextB: {
104 | // paddingLeft: 2,
105 | // paddingRight: 2,
106 | // borderWidth: 1,
107 | // borderRadius: 2,
108 | // fontSize: 10,
109 | // bottom: 0,
110 | // left: 0,
111 | // position: 'absolute',
112 | // borderColor: '#fdd849',
113 | // color: '#fdd849'
114 | // },
115 | lineBox: {
116 | flexDirection: 'row',
117 | alignItems: 'center'
118 | }
119 | })
120 |
121 | export default ListItemUI;
--------------------------------------------------------------------------------
/src/components/AppDraw/land.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import { Text, View, Image } from 'react-native';
3 | import { Item } from 'native-base';
4 |
5 | class Land extends Component {
6 | constructor(props) {
7 | super(props);
8 | this.state = {
9 | data: [
10 | {
11 | name: '主页',
12 | },
13 | {
14 | name: '历史记录',
15 | },
16 | {
17 | name: '离线缓存',
18 | },
19 | {
20 | name: '我的收藏',
21 | },
22 | {
23 | name: '稍后再看',
24 | }
25 | ]
26 | }
27 | }
28 | render() {
29 | return (
30 |
31 |
32 |
33 |
34 | 未登录
35 | 点击头像登陆
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 | {
49 | this.state.data.map((item, index) => {
50 | return (
51 | {item.name}
52 | )
53 | })}
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 | 投稿
66 | 我的订单
67 | 直播中心
68 |
69 |
70 |
71 |
72 |
73 | 设置
74 |
75 | 主题
76 |
77 | 夜间
78 |
79 |
80 |
81 |
82 |
83 | )
84 |
85 | }
86 | }
87 |
88 | export default Land;
89 |
--------------------------------------------------------------------------------
/android/app/src/main/res/raw/node_modules_reactnativevectoricons_glyphmaps_octicons.json:
--------------------------------------------------------------------------------
1 | {
2 | "alert": 61696,
3 | "archive": 61697,
4 | "arrow-both": 61698,
5 | "arrow-down": 61699,
6 | "arrow-left": 61700,
7 | "arrow-right": 61701,
8 | "arrow-small-down": 61702,
9 | "arrow-small-left": 61703,
10 | "arrow-small-right": 61704,
11 | "arrow-small-up": 61705,
12 | "arrow-up": 61706,
13 | "beaker": 61707,
14 | "bell": 61708,
15 | "bold": 61709,
16 | "book": 61710,
17 | "bookmark": 61711,
18 | "briefcase": 61712,
19 | "broadcast": 61713,
20 | "browser": 61714,
21 | "bug": 61715,
22 | "calendar": 61716,
23 | "check": 61717,
24 | "checklist": 61718,
25 | "chevron-down": 61719,
26 | "chevron-left": 61720,
27 | "chevron-right": 61721,
28 | "chevron-up": 61722,
29 | "circle-slash": 61723,
30 | "circuit-board": 61724,
31 | "clippy": 61725,
32 | "clock": 61726,
33 | "cloud-download": 61727,
34 | "cloud-upload": 61728,
35 | "code": 61729,
36 | "comment": 61730,
37 | "comment-discussion": 61731,
38 | "credit-card": 61732,
39 | "dash": 61733,
40 | "dashboard": 61734,
41 | "database": 61735,
42 | "desktop-download": 61736,
43 | "device-camera": 61737,
44 | "device-camera-video": 61738,
45 | "device-desktop": 61739,
46 | "device-mobile": 61740,
47 | "diff": 61741,
48 | "diff-added": 61742,
49 | "diff-ignored": 61743,
50 | "diff-modified": 61744,
51 | "diff-removed": 61745,
52 | "diff-renamed": 61746,
53 | "ellipsis": 61747,
54 | "eye": 61748,
55 | "eye-closed": 61749,
56 | "file": 61750,
57 | "file-binary": 61751,
58 | "file-code": 61752,
59 | "file-directory": 61753,
60 | "file-media": 61754,
61 | "file-pdf": 61755,
62 | "file-submodule": 61756,
63 | "file-symlink-directory": 61757,
64 | "file-symlink-file": 61758,
65 | "file-zip": 61759,
66 | "flame": 61760,
67 | "fold": 61761,
68 | "fold-down": 61762,
69 | "fold-up": 61763,
70 | "gear": 61764,
71 | "gift": 61765,
72 | "gist": 61766,
73 | "gist-secret": 61767,
74 | "git-branch": 61768,
75 | "git-commit": 61769,
76 | "git-compare": 61770,
77 | "git-merge": 61771,
78 | "git-pull-request": 61772,
79 | "github-action": 61773,
80 | "globe": 61774,
81 | "grabber": 61775,
82 | "graph": 61776,
83 | "heart": 61777,
84 | "history": 61778,
85 | "home": 61779,
86 | "horizontal-rule": 61780,
87 | "hubot": 61781,
88 | "inbox": 61782,
89 | "info": 61783,
90 | "issue-closed": 61784,
91 | "issue-opened": 61785,
92 | "issue-reopened": 61786,
93 | "italic": 61787,
94 | "jersey": 61788,
95 | "kebab-horizontal": 61789,
96 | "kebab-vertical": 61790,
97 | "key": 61791,
98 | "keyboard": 61792,
99 | "law": 61793,
100 | "light-bulb": 61794,
101 | "link": 61795,
102 | "link-external": 61796,
103 | "list-ordered": 61797,
104 | "list-unordered": 61798,
105 | "location": 61799,
106 | "lock": 61800,
107 | "logo-gist": 61801,
108 | "logo-github": 61802,
109 | "mail": 61803,
110 | "mail-read": 61804,
111 | "mark-github": 61805,
112 | "markdown": 61806,
113 | "megaphone": 61807,
114 | "mention": 61808,
115 | "milestone": 61809,
116 | "mirror": 61810,
117 | "mortar-board": 61811,
118 | "mute": 61812,
119 | "no-newline": 61813,
120 | "note": 61814,
121 | "octoface": 61815,
122 | "organization": 61816,
123 | "package": 61817,
124 | "paintcan": 61818,
125 | "pencil": 61819,
126 | "person": 61820,
127 | "pin": 61821,
128 | "play": 61822,
129 | "plug": 61823,
130 | "plus": 61824,
131 | "plus-small": 61825,
132 | "primitive-dot": 61826,
133 | "primitive-square": 61827,
134 | "project": 61828,
135 | "pulse": 61829,
136 | "question": 61830,
137 | "quote": 61831,
138 | "radio-tower": 61832,
139 | "reply": 61833,
140 | "repo": 61834,
141 | "repo-clone": 61835,
142 | "repo-force-push": 61836,
143 | "repo-forked": 61837,
144 | "repo-pull": 61838,
145 | "repo-push": 61839,
146 | "report": 61840,
147 | "request-changes": 61841,
148 | "rocket": 61842,
149 | "rss": 61843,
150 | "ruby": 61844,
151 | "screen-full": 61845,
152 | "screen-normal": 61846,
153 | "search": 61847,
154 | "server": 61848,
155 | "settings": 61849,
156 | "shield": 61850,
157 | "sign-in": 61851,
158 | "sign-out": 61852,
159 | "smiley": 61853,
160 | "squirrel": 61854,
161 | "star": 61855,
162 | "stop": 61856,
163 | "sync": 61857,
164 | "tag": 61858,
165 | "tasklist": 61859,
166 | "telescope": 61860,
167 | "terminal": 61861,
168 | "text-size": 61862,
169 | "three-bars": 61863,
170 | "thumbsdown": 61864,
171 | "thumbsup": 61865,
172 | "tools": 61866,
173 | "trashcan": 61867,
174 | "triangle-down": 61868,
175 | "triangle-left": 61869,
176 | "triangle-right": 61870,
177 | "triangle-up": 61871,
178 | "unfold": 61872,
179 | "unmute": 61873,
180 | "unverified": 61874,
181 | "verified": 61875,
182 | "versions": 61876,
183 | "watch": 61877,
184 | "x": 61878,
185 | "zap": 61879
186 | }
--------------------------------------------------------------------------------
/src/components/BanMore.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import { StyleSheet, Image, View, Text, Dimensions, FlatList, ScrollView, TouchableHighlight } from 'react-native';
3 | import { Container, Header,Title, Content, Card, CardItem, Thumbnail, Button, Icon, Left, Body, Right, Badge } from 'native-base';
4 | import { Actions } from 'react-native-router-flux';
5 |
6 | const BannerWidth = (Dimensions.get('window').width * 0.96);
7 | const screenLeft = (Dimensions.get('window').width * 0.02);
8 |
9 | const cards = [
10 | {
11 | title: "番剧推荐",
12 | id: 1,
13 | name: "猎兽神兵",
14 | number: "全12话",
15 | count: "69.1万追番",
16 | imageurl: "http://i0.hdslb.com/bfs/archive/81385f895a48a1c27a0e701218781908fb9d5dd2.jpg",
17 | },
18 | {
19 | id: 1,
20 | name: "鬼灭之刃",
21 | number: "更新至第24话",
22 | count: "476.9万追番",
23 | imageurl: "http://i0.hdslb.com/bfs/archive/efc989798673c8c374cad6e2b4fc555a8f0f3c2c.jpg",
24 | },
25 | {
26 | id: 1,
27 | name: "女高中生的虚度日常",
28 | number: "更新至第11话",
29 | count: "171.1万追番",
30 | imageurl: "http://i0.hdslb.com/bfs/archive/1c277223735cfe18a32f8130855a20c1a699f706.jpg",
31 | },
32 | {
33 | id: 1,
34 | name: "某科学的一方通行",
35 | number: "更新至第10话",
36 | count: "217.2万追番",
37 | imageurl: "http://i0.hdslb.com/bfs/archive/def29a30113e96248830b2a984c8feb6749252f4.jpg",
38 | },
39 | {
40 | id: 2,
41 | name: "爱书的下克上:为了成为图书管理员不择手段!",
42 | number: "更新至第10话",
43 | count: "36万追番",
44 | imageurl: "https://i2.hdslb.com/bfs/archive/b6e413bef190422a10f6c5da448b29bafc272509.jpg",
45 | },
46 | {
47 | id: 2,
48 | name: "喜欢本大爷的竟然就你一个?",
49 | number: "更新至第9.5话",
50 | count: "159.9万追番",
51 | imageurl: "https://i0.hdslb.com/bfs/archive/6a40cf23518888c0aa5346ba9ca659771463d2df.jpg",
52 | },
53 | {
54 | id: 2,
55 | name: "碧蓝航线",
56 | number: "更新至第9话",
57 | count: "116.8万追番",
58 | imageurl: "https://i1.hdslb.com/bfs/archive/ba2cb324e57b917e2bd46794540203ff76a7ba52.jpg",
59 | },
60 | {
61 | id: 2,
62 | name: "刺客守则",
63 | number: "全12话",
64 | count: "114.6万追番",
65 | imageurl: "https://i0.hdslb.com/bfs/archive/e7a0b9d006fe345dabd0fffe45e636a27bba7be9.jpg",
66 | }
67 |
68 | ];
69 |
70 | class BanMore extends Component {
71 | constructor(props) {
72 | super(props)
73 | this.state = {}
74 | }
75 | render() {
76 | return (
77 |
78 |
79 |
80 | {Actions.pop()}}>
81 |
82 |
83 | 更多番剧
84 |
85 |
86 |
87 |
88 | i} // 解决 key 问题
91 | renderItem={({ item }) => this.renderItem(item)} // 调用方法,去渲染每一项
92 | //ItemSeparatorComponent={this.renderSeparator} //渲染分割线的属性方法
93 | onEndReachedThreshold={0.5} // 距离底部还有多远的时候,触发加载更多的事件
94 | //onEndReached={this.loadNextPage} // 当距离不足 0.5 的时候,触发这个方法,加载下一页数据
95 | style={{ backgroundColor: "#FFFFFF" }}
96 | />
97 |
98 | );
99 | }
100 |
101 | renderItem = (item) => {
102 | return
103 |
104 |
105 | {/*justify-content:主軸的對齊 */}
106 |
107 | 番剧名称:{item.name}
108 | 番剧集数:{item.number}
109 | 追番人数:{item.count}分
110 |
113 |
114 |
115 |
116 | }
117 |
118 |
119 |
120 | }
121 |
122 |
123 |
124 | export default BanMore;
--------------------------------------------------------------------------------
/src/pages/search_sub_pages/SearchResult.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import { View, Text, StyleSheet, TouchableHighlight, FlatList } from 'react-native';
3 | import ModalDropdown from 'react-native-modal-dropdown';
4 | import { Actions } from 'react-native-router-flux';
5 | import { numFormat } from '../../utils/utils';
6 |
7 |
8 | import ListItemUI from '../../components/ListItemUI';
9 |
10 | class SearchResult extends Component {
11 | constructor(props) {
12 | super(props);
13 | this.state = {
14 | selectValueA: '默认排序',
15 | selectValueB: '全部时长',
16 | selectValueC: '全部分区',
17 | dropdownList: ['默认排序', '播放多', '新发布', '弹幕多'],
18 | dropdownList2: ['全部时长', '0-10分钟', '10-30分钟', '30-60分钟'],
19 | dropdownList3: ['全部分区', '分区2', '分区3', '分区4']
20 | }
21 | }
22 |
23 | componentDidMount() {
24 | // this.getSearchResultList()
25 | }
26 |
27 | //列表元素按下事件
28 | _toVideoPageOnPress(item) {
29 | Actions.VideoPage({ 'aid': item.param })
30 | }
31 |
32 | //上拉加载
33 | _onEndReached = () => {
34 | this.props.resultClssfiy(1)
35 | }
36 |
37 |
38 | _renderResultList = (item, index) => {
39 | if (item.linktype === 'video') {
40 | return (
41 | this._toVideoPageOnPress(item)}
43 | underlayColor="#f3f3f3"
44 | >
45 |
55 |
56 | )
57 | } else {
58 | return null
59 | }
60 | }
61 | render() {
62 | return (
63 |
64 | {console.warn(index)}}/>
74 |
75 |
76 |
77 | this._renderResultList(item, index)}
81 | keyExtractor={(item, index) => index + item.position}
82 | onEndReached={this._onEndReached}
83 | onEndReachedThreshold={2}
84 | />
85 | );
86 | }
87 | }
88 | const styles = StyleSheet.create({
89 | container: {
90 | flex: 1,
91 | },
92 | topBox: {
93 | flexDirection: 'row',
94 | height: 35,
95 | },
96 | dropdown: {
97 | flex: 1,
98 | justifyContent: 'center',
99 | alignItems: 'center',
100 | borderBottomWidth: 0.2,
101 | borderColor: '#fb7b9e'
102 | },
103 | dropdownText: {
104 | color: '#888',
105 | fontSize: 14,
106 | width: 80,
107 | textAlign: 'center',
108 | color: '#fb7b9e'
109 | },
110 | dropdownStyle: {
111 | backgroundColor: '#ccc',
112 | marginTop: 10,
113 | width: 80,
114 | height: 158,
115 | justifyContent: 'center'
116 | },
117 | highlightStyle: {
118 | backgroundColor: '#fb7b9e',
119 | fontSize: 14,
120 | textAlign: 'center',
121 | color: '#fff'
122 | },
123 | dropdownTextStyle: {
124 | backgroundColor: '#fff',
125 | color: '#fb7b9e',
126 | fontSize: 14,
127 | textAlign: 'center'
128 | },
129 | })
130 |
131 | export default SearchResult;
--------------------------------------------------------------------------------
/android/app/src/main/res/raw/node_modules_reactnativevectoricons_glyphmaps_simplelineicons.json:
--------------------------------------------------------------------------------
1 | {
2 | "user": 57349,
3 | "people": 57345,
4 | "user-female": 57344,
5 | "user-follow": 57346,
6 | "user-following": 57347,
7 | "user-unfollow": 57348,
8 | "login": 57446,
9 | "logout": 57445,
10 | "emotsmile": 57377,
11 | "phone": 58880,
12 | "call-end": 57416,
13 | "call-in": 57415,
14 | "call-out": 57414,
15 | "map": 57395,
16 | "location-pin": 57494,
17 | "direction": 57410,
18 | "directions": 57409,
19 | "compass": 57413,
20 | "layers": 57396,
21 | "menu": 58881,
22 | "list": 57447,
23 | "options-vertical": 58882,
24 | "options": 58883,
25 | "arrow-down": 58884,
26 | "arrow-left": 58885,
27 | "arrow-right": 58886,
28 | "arrow-up": 58887,
29 | "arrow-up-circle": 57464,
30 | "arrow-left-circle": 57466,
31 | "arrow-right-circle": 57465,
32 | "arrow-down-circle": 57467,
33 | "check": 57472,
34 | "clock": 57473,
35 | "plus": 57493,
36 | "minus": 58901,
37 | "close": 57474,
38 | "event": 58905,
39 | "exclamation": 58903,
40 | "organization": 58902,
41 | "trophy": 57350,
42 | "screen-smartphone": 57360,
43 | "screen-desktop": 57361,
44 | "plane": 57362,
45 | "notebook": 57363,
46 | "mustache": 57364,
47 | "mouse": 57365,
48 | "magnet": 57366,
49 | "energy": 57376,
50 | "disc": 57378,
51 | "cursor": 57454,
52 | "cursor-move": 57379,
53 | "crop": 57380,
54 | "chemistry": 57382,
55 | "speedometer": 57351,
56 | "shield": 57358,
57 | "screen-tablet": 57359,
58 | "magic-wand": 57367,
59 | "hourglass": 57368,
60 | "graduation": 57369,
61 | "ghost": 57370,
62 | "game-controller": 57371,
63 | "fire": 57372,
64 | "eyeglass": 57373,
65 | "envelope-open": 57374,
66 | "envelope-letter": 57375,
67 | "bell": 57383,
68 | "badge": 57384,
69 | "anchor": 57385,
70 | "wallet": 57386,
71 | "vector": 57387,
72 | "speech": 57388,
73 | "puzzle": 57389,
74 | "printer": 57390,
75 | "present": 57391,
76 | "playlist": 57392,
77 | "pin": 57393,
78 | "picture": 57394,
79 | "handbag": 57397,
80 | "globe-alt": 57398,
81 | "globe": 57399,
82 | "folder-alt": 57401,
83 | "folder": 57481,
84 | "film": 57402,
85 | "feed": 57403,
86 | "drop": 57406,
87 | "drawer": 57407,
88 | "docs": 57408,
89 | "doc": 57477,
90 | "diamond": 57411,
91 | "cup": 57412,
92 | "calculator": 57417,
93 | "bubbles": 57418,
94 | "briefcase": 57419,
95 | "book-open": 57420,
96 | "basket-loaded": 57421,
97 | "basket": 57422,
98 | "bag": 57423,
99 | "action-undo": 57424,
100 | "action-redo": 57425,
101 | "wrench": 57426,
102 | "umbrella": 57427,
103 | "trash": 57428,
104 | "tag": 57429,
105 | "support": 57430,
106 | "frame": 57400,
107 | "size-fullscreen": 57431,
108 | "size-actual": 57432,
109 | "shuffle": 57433,
110 | "share-alt": 57434,
111 | "share": 57435,
112 | "rocket": 57436,
113 | "question": 57437,
114 | "pie-chart": 57438,
115 | "pencil": 57439,
116 | "note": 57440,
117 | "loop": 57444,
118 | "home": 57449,
119 | "grid": 57450,
120 | "graph": 57451,
121 | "microphone": 57443,
122 | "music-tone-alt": 57441,
123 | "music-tone": 57442,
124 | "earphones-alt": 57404,
125 | "earphones": 57405,
126 | "equalizer": 57452,
127 | "like": 57448,
128 | "dislike": 57453,
129 | "control-start": 57455,
130 | "control-rewind": 57456,
131 | "control-play": 57457,
132 | "control-pause": 57458,
133 | "control-forward": 57459,
134 | "control-end": 57460,
135 | "volume-1": 57503,
136 | "volume-2": 57504,
137 | "volume-off": 57505,
138 | "calendar": 57461,
139 | "bulb": 57462,
140 | "chart": 57463,
141 | "ban": 57468,
142 | "bubble": 57469,
143 | "camrecorder": 57470,
144 | "camera": 57471,
145 | "cloud-download": 57475,
146 | "cloud-upload": 57476,
147 | "envelope": 57478,
148 | "eye": 57479,
149 | "flag": 57480,
150 | "heart": 57482,
151 | "info": 57483,
152 | "key": 57484,
153 | "link": 57485,
154 | "lock": 57486,
155 | "lock-open": 57487,
156 | "magnifier": 57488,
157 | "magnifier-add": 57489,
158 | "magnifier-remove": 57490,
159 | "paper-clip": 57491,
160 | "paper-plane": 57492,
161 | "power": 57495,
162 | "refresh": 57496,
163 | "reload": 57497,
164 | "settings": 57498,
165 | "star": 57499,
166 | "symbol-female": 57500,
167 | "symbol-male": 57501,
168 | "target": 57502,
169 | "credit-card": 57381,
170 | "paypal": 58888,
171 | "social-tumblr": 57354,
172 | "social-twitter": 57353,
173 | "social-facebook": 57355,
174 | "social-instagram": 58889,
175 | "social-linkedin": 58890,
176 | "social-pinterest": 58891,
177 | "social-github": 58892,
178 | "social-google": 58893,
179 | "social-reddit": 58894,
180 | "social-skype": 58895,
181 | "social-dribbble": 57357,
182 | "social-behance": 58896,
183 | "social-foursqare": 58897,
184 | "social-soundcloud": 58898,
185 | "social-spotify": 58899,
186 | "social-stumbleupon": 58900,
187 | "social-youtube": 57352,
188 | "social-dropbox": 57356,
189 | "social-vkontakte": 58904,
190 | "social-steam": 58912
191 | }
--------------------------------------------------------------------------------
/src/assets/icons/mybilibil_font/font_1562172_onj4s86ncfd/iconfont.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "1562172",
3 | "name": "mybilibili",
4 | "font_family": "iconfont",
5 | "css_prefix_text": "icon-",
6 | "description": "",
7 | "glyphs": [
8 | {
9 | "icon_id": "423047",
10 | "name": "收藏负形",
11 | "font_class": "shoucangfuxing",
12 | "unicode": "e672",
13 | "unicode_decimal": 58994
14 | },
15 | {
16 | "icon_id": "423048",
17 | "name": "收藏正形",
18 | "font_class": "shoucangzhengxing",
19 | "unicode": "e673",
20 | "unicode_decimal": 58995
21 | },
22 | {
23 | "icon_id": "579286",
24 | "name": "点赞",
25 | "font_class": "dianzan",
26 | "unicode": "e60c",
27 | "unicode_decimal": 58892
28 | },
29 | {
30 | "icon_id": "740391",
31 | "name": "搜索",
32 | "font_class": "sousuo",
33 | "unicode": "e614",
34 | "unicode_decimal": 58900
35 | },
36 | {
37 | "icon_id": "880163",
38 | "name": "评论",
39 | "font_class": "pinglun",
40 | "unicode": "e603",
41 | "unicode_decimal": 58883
42 | },
43 | {
44 | "icon_id": "886699",
45 | "name": "点赞",
46 | "font_class": "dianzan1",
47 | "unicode": "e611",
48 | "unicode_decimal": 58897
49 | },
50 | {
51 | "icon_id": "959410",
52 | "name": "share",
53 | "font_class": "share",
54 | "unicode": "e655",
55 | "unicode_decimal": 58965
56 | },
57 | {
58 | "icon_id": "1603699",
59 | "name": "收藏",
60 | "font_class": "shoucang",
61 | "unicode": "e618",
62 | "unicode_decimal": 58904
63 | },
64 | {
65 | "icon_id": "2116294",
66 | "name": "分享",
67 | "font_class": "share_icon",
68 | "unicode": "e662",
69 | "unicode_decimal": 58978
70 | },
71 | {
72 | "icon_id": "3249133",
73 | "name": "icon-bilibili",
74 | "font_class": "icon-bilibili",
75 | "unicode": "e602",
76 | "unicode_decimal": 58882
77 | },
78 | {
79 | "icon_id": "4735320",
80 | "name": "icon_点赞-线",
81 | "font_class": "icon_dianzan-xian",
82 | "unicode": "e64a",
83 | "unicode_decimal": 58954
84 | },
85 | {
86 | "icon_id": "4735325",
87 | "name": "icon_点赞-面",
88 | "font_class": "icon_dianzan-mian",
89 | "unicode": "e64c",
90 | "unicode_decimal": 58956
91 | },
92 | {
93 | "icon_id": "4956691",
94 | "name": "bilibili",
95 | "font_class": "bilibili",
96 | "unicode": "e6cf",
97 | "unicode_decimal": 59087
98 | },
99 | {
100 | "icon_id": "7766786",
101 | "name": "icon_send",
102 | "font_class": "icon_send",
103 | "unicode": "eb9d",
104 | "unicode_decimal": 60317
105 | },
106 | {
107 | "icon_id": "8714755",
108 | "name": "会员购激活@2x",
109 | "font_class": "huiyuangoujihuox",
110 | "unicode": "e652",
111 | "unicode_decimal": 58962
112 | },
113 | {
114 | "icon_id": "8977288",
115 | "name": "会员购@2x",
116 | "font_class": "huiyuangoux",
117 | "unicode": "e600",
118 | "unicode_decimal": 58880
119 | },
120 | {
121 | "icon_id": "10216375",
122 | "name": "投币",
123 | "font_class": "toubi",
124 | "unicode": "e607",
125 | "unicode_decimal": 58887
126 | },
127 | {
128 | "icon_id": "11372651",
129 | "name": "点赞",
130 | "font_class": "dianzan2",
131 | "unicode": "e8ad",
132 | "unicode_decimal": 59565
133 | },
134 | {
135 | "icon_id": "11372659",
136 | "name": "更多",
137 | "font_class": "gengduo",
138 | "unicode": "e8af",
139 | "unicode_decimal": 59567
140 | },
141 | {
142 | "icon_id": "11372666",
143 | "name": "分享",
144 | "font_class": "fenxiang",
145 | "unicode": "e8b0",
146 | "unicode_decimal": 59568
147 | },
148 | {
149 | "icon_id": "11372687",
150 | "name": "评论",
151 | "font_class": "pinglun1",
152 | "unicode": "e8b4",
153 | "unicode_decimal": 59572
154 | },
155 | {
156 | "icon_id": "11372720",
157 | "name": "想看",
158 | "font_class": "xiangkan",
159 | "unicode": "e8bc",
160 | "unicode_decimal": 59580
161 | },
162 | {
163 | "icon_id": "11372722",
164 | "name": "消息",
165 | "font_class": "xiaoxi",
166 | "unicode": "e8bd",
167 | "unicode_decimal": 59581
168 | },
169 | {
170 | "icon_id": "11372730",
171 | "name": "已想看",
172 | "font_class": "yixiangkan",
173 | "unicode": "e8bf",
174 | "unicode_decimal": 59583
175 | },
176 | {
177 | "icon_id": "11372758",
178 | "name": "点赞",
179 | "font_class": "dianzan3",
180 | "unicode": "e8c3",
181 | "unicode_decimal": 59587
182 | },
183 | {
184 | "icon_id": "11372767",
185 | "name": "会员",
186 | "font_class": "huiyuan",
187 | "unicode": "e8c5",
188 | "unicode_decimal": 59589
189 | },
190 | {
191 | "icon_id": "12167484",
192 | "name": "搜索--1",
193 | "font_class": "soushuo",
194 | "unicode": "e601",
195 | "unicode_decimal": 58881
196 | }
197 | ]
198 | }
199 |
--------------------------------------------------------------------------------
/App.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import { View, Text, StyleSheet, TouchableHighlight, DrawerLayoutAndroid, StatusBar } from 'react-native'
3 | import TabNavigator from 'react-native-tab-navigator'
4 | import { Container, Header, Title, Content, Card, CardItem, Thumbnail, Button, Icon, Left, Body, Right, Badge } from 'native-base';
5 |
6 |
7 |
8 | import HomePage from './src/pages/HomePage';
9 | import Classify from './src/pages/Classify';
10 | import Search from './src/pages/Search';
11 | import MemberBuy from './src/pages/MemberBuy';
12 |
13 | import Land from './src/components/AppDraw/land';
14 |
15 |
16 | const App: () => React$Node = () => {
17 | const [selectedTab, onChangeSelectedTab] = React.useState("首页")
18 | const navigationView = (
19 |
20 | )
21 | return (
22 | navigationView}>
26 |
27 |
32 | {/* 头部 */}
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 | {selectedTab}
42 |
43 |
44 |
47 |
48 |
49 |
50 |
52 | {/* HomePage Tab栏 */}
53 | } // 未选中状态下,展示的图标
57 | renderSelectedIcon={() => }
58 | onPress={() => onChangeSelectedTab("首页")} // 点击Tab栏的操作
59 | selected={selectedTab === '首页'} // 判断当前的 tab栏是否被选中的
60 | >
61 |
62 |
63 | {/* Classify Tab栏 */}
64 | onChangeSelectedTab("频道")} // 点击Tab栏的操作
69 | renderIcon={() => } // 未选中状态下,展示的图标
70 | renderSelectedIcon={() => }
71 | >
72 |
73 |
74 | onChangeSelectedTab("搜索")} // 点击Tab栏的操作
79 | renderIcon={() => } // 未选中状态下,展示的图标
80 | renderSelectedIcon={() => }
81 | >
82 |
83 |
84 | {/* MemberBuy Tab栏 */}
85 | onChangeSelectedTab("会员购")}
90 | renderIcon={() => } // 未选中状态下,展示的图标
91 | renderSelectedIcon={() => }
92 | >
93 |
94 |
95 |
96 |
97 |
98 | );
99 | }
100 |
101 |
102 |
103 |
104 | export default App;
--------------------------------------------------------------------------------
/ios/react_blibli.xcodeproj/xcshareddata/xcschemes/react_blibli.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
29 |
35 |
36 |
37 |
43 |
49 |
50 |
51 |
52 |
53 |
58 |
59 |
61 |
67 |
68 |
69 |
70 |
71 |
77 |
78 |
79 |
80 |
81 |
82 |
92 |
94 |
100 |
101 |
102 |
103 |
104 |
105 |
111 |
113 |
119 |
120 |
121 |
122 |
124 |
125 |
128 |
129 |
130 |
--------------------------------------------------------------------------------
/src/pages/home_sub_pages/Move.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import Carousel from 'react-native-banner-carousel';
3 | import { StyleSheet, Image, View, Text, Dimensions, ScrollView } from 'react-native';
4 | import { Container, Header, Content, Card, CardItem, Thumbnail, Button, Icon, Left, Body, Right, Badge } from 'native-base';
5 | import MovieOne from '../../components/MovieOne'
6 | import MovieTwo from '../../components/MovieTwo';
7 | import MovieThree from '../../components/MovieThree'
8 |
9 |
10 |
11 |
12 | //轮播图片数据
13 | const images = [
14 | "http://i0.hdslb.com/bfs/bangumi/6a11174b96970c2239f9f5064c57e59af70171a6.jpg",
15 | "http://i0.hdslb.com/bfs/bangumi/4c58a6e3d6c9901251250ee4ef9ff5696e3c1db0.jpg",
16 | "http://i0.hdslb.com/bfs/bangumi/98182d952ce44c6d378be97264e7bda0b0fd4c88.jpg",
17 | "http://i0.hdslb.com/bfs/bangumi/923bfb36c57cd643afb6a6c48594695372ff4a72.jpg",
18 | "http://i0.hdslb.com/bfs/bangumi/5afd0231d665fd2ee29c376c292a8b3f0203384b.jpg",
19 |
20 | ];
21 |
22 | const texts = [
23 | "吴青峰:怼粉这种事,都是靠灵感",
24 | "中国千年的礼乐智慧",
25 | "一群有能力、有怪癖又可爱的退休警察们",
26 | "破解冻土难题,改写国际预言",
27 | "实拍战机空中机油~",
28 | ];
29 |
30 | const BannerWidth = (Dimensions.get('window').width * 0.96);
31 | const BannerHeight = 180;
32 |
33 | //导航栏图标资源
34 | const icons = [
35 | "http://i0.hdslb.com/bfs/bangumi/85e80d8bb430e76eb3e55bbf93d8a62a51e2a774.png",
36 | "http://i0.hdslb.com/bfs/bangumi/a1901aedc680a77c808787cb2cf8e22c7b9c359b.png",
37 | "http://i0.hdslb.com/bfs/bangumi/21bd3247c745e3f1eb489bf637215f8cc8aa86ca.png",
38 | "http://i0.hdslb.com/bfs/bangumi/76c03a7ca20815765c7f5bc17d320e0676e15a20.png",
39 | "http://i0.hdslb.com/bfs/bangumi/e713a764f9146b73673ba9b126d963aa50f4fc3b.png",
40 |
41 | ];
42 | const iconTexts = [
43 | "纪录片",
44 | "电影",
45 | "电视剧",
46 | "索引",
47 | "热门榜单"
48 | ];
49 |
50 |
51 | class Movie extends Component {
52 | constructor(props) {
53 | super(props);
54 | this.state = {}
55 | }
56 |
57 | //渲染轮播图片
58 | renderPage(image, index) {
59 | let count = index;
60 | return (
61 |
62 | {texts[count]}
63 |
64 |
65 | );
66 |
67 | }
68 |
69 | render() {
70 | return (
71 |
72 |
73 | {/* 轮播图片 */}
74 |
75 |
85 | {images.map((image, index) => this.renderPage(image, index))}
86 |
87 |
88 |
89 | {/* 导航栏 */}
90 |
91 |
92 | {icons.map((item, index) => {
93 | let font = index;
94 | return (
95 |
96 |
97 | {iconTexts[font]}
98 |
99 | );
100 | })}
101 |
102 |
103 |
104 | {/* 纪录片组件 */}
105 |
106 |
107 |
108 |
109 | {/* 电影组件 */}
110 |
111 |
112 |
113 |
114 | {/* 电视剧组件*/}
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 | )
131 | }
132 | }
133 |
134 | const styles = StyleSheet.create({
135 | //轮播图样式
136 | container: {
137 | flex: 1,
138 | backgroundColor: '#fff',
139 | // 横向 居中
140 | flexDirection: 'row',
141 | justifyContent: 'center',
142 | position: "absolute",
143 | top: 5,
144 | right: 0,
145 | left: 0,
146 | //圆角边框
147 | borderRadius: 20,
148 | overflow: "hidden",
149 | },
150 | //导航栏样式
151 | box: {
152 | width: "100%",
153 | alignItems: "center",
154 | marginTop: 190,
155 |
156 | },
157 | });
158 |
159 | export default Movie;
--------------------------------------------------------------------------------
/ios/react_blibli.xcodeproj/xcshareddata/xcschemes/react_blibli-tvOS.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
29 |
35 |
36 |
37 |
43 |
49 |
50 |
51 |
52 |
53 |
58 |
59 |
61 |
67 |
68 |
69 |
70 |
71 |
77 |
78 |
79 |
80 |
81 |
82 |
92 |
94 |
100 |
101 |
102 |
103 |
104 |
105 |
111 |
113 |
119 |
120 |
121 |
122 |
124 |
125 |
128 |
129 |
130 |
--------------------------------------------------------------------------------
/src/pages/home_sub_pages/Bangumi.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import Carousel from 'react-native-banner-carousel';
3 | import { StyleSheet, Image, View, Text, Dimensions, ScrollView } from 'react-native';
4 | import { Container, Header, Content, Card, CardItem, Thumbnail, Button, Icon, Left, Body, Right, Badge } from 'native-base';
5 | import BanItem from '../../components/BanItem'
6 | import GuoItem from '../../components/GuoItem'
7 |
8 |
9 | const BannerWidth = (Dimensions.get('window').width * 0.96);
10 | const BannerHeight = 180;
11 | //轮播图片数据
12 | const images = [
13 | "http://i0.hdslb.com/bfs/bangumi/a085f60bda7f18226accf3993b328e17f419c00d.jpg",
14 | "http://i0.hdslb.com/bfs/bangumi/8c39135d5191acbe0f0108ede3dbc76b6342cd36.jpg",
15 | "http://i0.hdslb.com/bfs/bangumi/105c45fa8538c897e85e44f3811eda2de2d79b85.jpg",
16 | "http://i0.hdslb.com/bfs/bangumi/20429c37693f67e5310f3b4d02f96c2b7403a6ec.jpg"
17 | ];
18 | const texts = [
19 | "FGO动画专题页",
20 | "少女前线 人形小剧场:第9话",
21 | "风起绿林",
22 | "【一周资讯】第37期"
23 | ];
24 |
25 | //导航栏图标资源
26 | const icons = [
27 | "http://i0.hdslb.com/bfs/bangumi/125ba229db0dcc3b5a9fe110ba3f4984ddc2c775.png",
28 | "http://i0.hdslb.com/bfs/bangumi/2c782d7a8127d0de8667321d4071eebff01ea977.png",
29 | "http://i0.hdslb.com/bfs/bangumi/7a7d9db1911b7cbfdad44ae953dd5acc49ef5187.png",
30 | "http://i0.hdslb.com/bfs/bangumi/76c03a7ca20815765c7f5bc17d320e0676e15a20.png",
31 | "http://i0.hdslb.com/bfs/bangumi/e713a764f9146b73673ba9b126d963aa50f4fc3b.png",
32 | ];
33 | const iconTexts = [
34 | "国创",
35 | "番剧",
36 | "时间表",
37 | "索引",
38 | "热门榜单"
39 | ];
40 |
41 | class Bangumi extends Component {
42 | constructor(props) {
43 | super(props);
44 | this.state = {
45 | y:0
46 | }
47 | }
48 |
49 | //渲染轮播图片
50 | renderPage(image, index) {
51 | let count = index;
52 | return (
53 |
54 | {texts[count]}
55 |
56 |
57 | );
58 |
59 | }
60 |
61 | // 滑动触发
62 | _onScroll=(e)=>{
63 | // 获取滑动的距离
64 | let { y } = e.nativeEvent.contentOffset;
65 | // console.log("y的值"+y)
66 | this.setState({
67 | y
68 | })
69 |
70 | }
71 |
72 |
73 | render() {
74 | return (
75 |
76 |
79 | {/* 轮播图片 */}
80 |
81 |
91 | {images.map((image, index) => this.renderPage(image, index))}
92 |
93 |
94 |
95 | {/* 导航栏 */}
96 |
97 |
98 | {icons.map((item, index) => {
99 | let font = index;
100 | return (
101 |
102 |
103 | {iconTexts[font]}
104 |
105 | );
106 | })}
107 |
108 |
109 | {/* 登录图片 */}
110 |
111 |
112 |
113 | {/* 番剧推荐 */}
114 |
115 |
116 |
117 |
118 | {/* 国创卡片 */}
119 |
120 |
121 |
122 |
123 |
124 | );
125 | }
126 | }
127 |
128 |
129 | const styles = StyleSheet.create({
130 | //轮播图样式
131 | container: {
132 | flex: 1,
133 | backgroundColor: '#fff',
134 | // 横向 居中
135 | flexDirection: 'row',
136 | justifyContent: 'center',
137 | position: "absolute",
138 | top: 5,
139 | right: 0,
140 | left: 0,
141 | //圆角边框
142 | borderRadius: 20,
143 | overflow: "hidden",
144 | },
145 | //导航栏样式
146 | box: {
147 | width: "100%",
148 | alignItems: "center",
149 | marginTop: 190,
150 |
151 | },
152 | //登陆图片样式
153 | login: {
154 | width: "100%",
155 | overflow: "hidden",
156 | marginTop: 5,
157 | },
158 |
159 |
160 | });
161 |
162 |
163 | export default Bangumi;
--------------------------------------------------------------------------------
/android/gradlew:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 |
3 | #
4 | # Copyright 2015 the original author or authors.
5 | #
6 | # Licensed under the Apache License, Version 2.0 (the "License");
7 | # you may not use this file except in compliance with the License.
8 | # You may obtain a copy of the License at
9 | #
10 | # http://www.apache.org/licenses/LICENSE-2.0
11 | #
12 | # Unless required by applicable law or agreed to in writing, software
13 | # distributed under the License is distributed on an "AS IS" BASIS,
14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | # See the License for the specific language governing permissions and
16 | # limitations under the License.
17 | #
18 |
19 | ##############################################################################
20 | ##
21 | ## Gradle start up script for UN*X
22 | ##
23 | ##############################################################################
24 |
25 | # Attempt to set APP_HOME
26 | # Resolve links: $0 may be a link
27 | PRG="$0"
28 | # Need this for relative symlinks.
29 | while [ -h "$PRG" ] ; do
30 | ls=`ls -ld "$PRG"`
31 | link=`expr "$ls" : '.*-> \(.*\)$'`
32 | if expr "$link" : '/.*' > /dev/null; then
33 | PRG="$link"
34 | else
35 | PRG=`dirname "$PRG"`"/$link"
36 | fi
37 | done
38 | SAVED="`pwd`"
39 | cd "`dirname \"$PRG\"`/" >/dev/null
40 | APP_HOME="`pwd -P`"
41 | cd "$SAVED" >/dev/null
42 |
43 | APP_NAME="Gradle"
44 | APP_BASE_NAME=`basename "$0"`
45 |
46 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
47 | DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
48 |
49 | # Use the maximum available, or set MAX_FD != -1 to use that value.
50 | MAX_FD="maximum"
51 |
52 | warn () {
53 | echo "$*"
54 | }
55 |
56 | die () {
57 | echo
58 | echo "$*"
59 | echo
60 | exit 1
61 | }
62 |
63 | # OS specific support (must be 'true' or 'false').
64 | cygwin=false
65 | msys=false
66 | darwin=false
67 | nonstop=false
68 | case "`uname`" in
69 | CYGWIN* )
70 | cygwin=true
71 | ;;
72 | Darwin* )
73 | darwin=true
74 | ;;
75 | MINGW* )
76 | msys=true
77 | ;;
78 | NONSTOP* )
79 | nonstop=true
80 | ;;
81 | esac
82 |
83 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
84 |
85 | # Determine the Java command to use to start the JVM.
86 | if [ -n "$JAVA_HOME" ] ; then
87 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
88 | # IBM's JDK on AIX uses strange locations for the executables
89 | JAVACMD="$JAVA_HOME/jre/sh/java"
90 | else
91 | JAVACMD="$JAVA_HOME/bin/java"
92 | fi
93 | if [ ! -x "$JAVACMD" ] ; then
94 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
95 |
96 | Please set the JAVA_HOME variable in your environment to match the
97 | location of your Java installation."
98 | fi
99 | else
100 | JAVACMD="java"
101 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
102 |
103 | Please set the JAVA_HOME variable in your environment to match the
104 | location of your Java installation."
105 | fi
106 |
107 | # Increase the maximum file descriptors if we can.
108 | if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
109 | MAX_FD_LIMIT=`ulimit -H -n`
110 | if [ $? -eq 0 ] ; then
111 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
112 | MAX_FD="$MAX_FD_LIMIT"
113 | fi
114 | ulimit -n $MAX_FD
115 | if [ $? -ne 0 ] ; then
116 | warn "Could not set maximum file descriptor limit: $MAX_FD"
117 | fi
118 | else
119 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
120 | fi
121 | fi
122 |
123 | # For Darwin, add options to specify how the application appears in the dock
124 | if $darwin; then
125 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
126 | fi
127 |
128 | # For Cygwin, switch paths to Windows format before running java
129 | if $cygwin ; then
130 | APP_HOME=`cygpath --path --mixed "$APP_HOME"`
131 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
132 | JAVACMD=`cygpath --unix "$JAVACMD"`
133 |
134 | # We build the pattern for arguments to be converted via cygpath
135 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
136 | SEP=""
137 | for dir in $ROOTDIRSRAW ; do
138 | ROOTDIRS="$ROOTDIRS$SEP$dir"
139 | SEP="|"
140 | done
141 | OURCYGPATTERN="(^($ROOTDIRS))"
142 | # Add a user-defined pattern to the cygpath arguments
143 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then
144 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
145 | fi
146 | # Now convert the arguments - kludge to limit ourselves to /bin/sh
147 | i=0
148 | for arg in "$@" ; do
149 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
150 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
151 |
152 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
153 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
154 | else
155 | eval `echo args$i`="\"$arg\""
156 | fi
157 | i=$((i+1))
158 | done
159 | case $i in
160 | (0) set -- ;;
161 | (1) set -- "$args0" ;;
162 | (2) set -- "$args0" "$args1" ;;
163 | (3) set -- "$args0" "$args1" "$args2" ;;
164 | (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
165 | (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
166 | (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
167 | (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
168 | (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
169 | (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
170 | esac
171 | fi
172 |
173 | # Escape application args
174 | save () {
175 | for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
176 | echo " "
177 | }
178 | APP_ARGS=$(save "$@")
179 |
180 | # Collect all arguments for the java command, following the shell quoting and substitution rules
181 | eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
182 |
183 | # by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
184 | if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
185 | cd "$(dirname "$0")"
186 | fi
187 |
188 | exec "$JAVACMD" "$@"
189 |
--------------------------------------------------------------------------------
/src/pages/MemberBuy.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | // import StickyHeader from "./MemberBuy/StickyHeader";
3 | import Top from "../components/MemberBuy/Top"
4 | import Search from "../components/MemberBuy/Search"
5 | import FiveList from "../components/MemberBuy/FiveList"
6 | import ThreeList from "../components/MemberBuy/ThreeList"
7 | import Swipe from "../components/MemberBuy/Swipe"
8 | import TabsList from "../components/MemberBuy/TabsList"
9 | import _Tabs from "../components/MemberBuy/Tabs"
10 |
11 | import {
12 | Animated,
13 | StyleSheet,
14 | View,
15 | Text,
16 | ScrollView,
17 | RefreshControl,
18 | Image,
19 | Dimensions,
20 | ActivityIndicator
21 | } from 'react-native'
22 | const BannerWidth = Dimensions.get('window').width;
23 | const BannerHeight = 100;
24 |
25 | export default class MovieListScreen extends Component {
26 |
27 | constructor(props) {
28 | super(props);
29 | this.state = {
30 | scrollY: new Animated.Value(0),
31 | headHeight: -1,
32 | tabs: [],
33 | banners: [],
34 | goodList: [],
35 | playList: [],
36 | blocks: [],
37 | page: {},
38 | tabChange: true,
39 | isloading: true,
40 | scrollTop: {}
41 |
42 | };
43 | }
44 |
45 | render() {
46 | if (this.state.isloading) {
47 | return }>
54 | }
55 | return (
56 | }
64 | ref={component => this._scrollView = component}
65 | onScrollEndDrag={this.handleScrollEnd}
66 | onScroll={this.isTab}
67 | // scrollEventThrottle={1}
68 | stickyHeaderIndices={[1]}
69 | >
70 |
71 | {
72 | let { height } = e.nativeEvent.layout;
73 | this.setState({ headHeight: height }); // 给头部高度赋值
74 | }}>
75 |
76 |
77 |
78 |
79 |
80 | <_Tabs tabs={{ changePage0: this.changePage0, changePage1: this.changePage1, tabChange: this.state.tabChange }}>
81 |
82 |
83 | )
84 | }
85 |
86 | scrollTop = (event) => {
87 | this.setState(
88 | {
89 | scrollTop: event.nativeEvent.contentOffset.y
90 | }
91 | )
92 | }
93 | _onRefresh = () => {
94 | this.setState({
95 | refreshing: true,
96 | });
97 | this.lodowMore()
98 | this.updata()
99 | setTimeout(() => {
100 | this.lodowMore()
101 | }, 50);
102 | this.setState({ refreshing: false });
103 | }
104 | updata = () => {
105 | this.setState({
106 | goodList: [],
107 | playList: [],
108 | })
109 | }
110 | changePage0 = () => {
111 |
112 | this.setState({
113 | page: 0
114 | })
115 | }
116 | changePage1 = () => {
117 | this.setState({
118 | page: 1
119 | })
120 | }
121 | tabChange = () => {
122 | this.setState({
123 | page: {}
124 | })
125 | if (this.state.tabChange == true) {
126 | this.setState({
127 | tabChange: false
128 | })
129 | } else {
130 | this.setState({
131 | tabChange: true
132 | })
133 | }
134 | setTimeout(() => {
135 | this.resScrollTop()
136 | }, 20);
137 |
138 | }
139 | resScrollTop() {
140 | if (this.state.scrollTop > 310) {
141 | this._scrollView.scrollWithoutAnimationTo(310, 0);
142 | }
143 | }
144 | componentDidMount() {
145 | this.lodowMore()
146 | this.setState({
147 | refreshing: true
148 | })
149 | setTimeout(() => {
150 | this.lodowMore()
151 | }, 50);
152 | }
153 |
154 | lodowMore = () => {
155 | fetch("https://mall.bilibili.com/mall-c/home/index/v2?mVersion=17").then(res => res.json())
156 | .then(data => {
157 | this.setState((state) => {
158 | return {
159 | tabs: data.data.vo.tabs,
160 | banners: data.data.vo.banners,
161 | blocks: data.data.vo.blocks,
162 | goodList: state.goodList.concat(data.data.vo.feeds.list.slice(0, 4)),
163 | playList: state.playList.concat(data.data.vo.feeds.list),
164 | isloading: false,
165 | refreshing: false
166 | }
167 | })
168 | })
169 | }
170 | renderPage(image, index) {
171 | return (
172 |
173 |
174 |
175 | );
176 | }
177 | handleScrollEnd = (event) => {
178 | const contentHeight = event.nativeEvent.contentSize.height;
179 | const scrollViewHeight = event.nativeEvent.layoutMeasurement.height;
180 | const scrollOffset = event.nativeEvent.contentOffset.y;
181 | const isEndReached = scrollOffset + scrollViewHeight >= contentHeight - 10; // 是否滑动到底部
182 | const isContentFillPage = contentHeight >= scrollViewHeight; // 内容高度是否大于列表高度
183 | if (isContentFillPage && isEndReached) {
184 | this.lodowMore()
185 | this.lodowMore()
186 |
187 | }
188 | };
189 | }
190 | const styles = StyleSheet.create({
191 | });
--------------------------------------------------------------------------------
/src/components/MovieThree.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import { StyleSheet, Image, View, Text, Dimensions, ScrollView } from 'react-native';
3 | import { Container, Header, Content, Card, CardItem, Thumbnail, Button, Icon, Left, Body, Right, Badge } from 'native-base';
4 |
5 | const BannerWidth = (Dimensions.get('window').width * 0.96);
6 | const screenLeft = (Dimensions.get('window').width * 0.02);
7 |
8 | //卡片图片资源
9 | const cards = [
10 | {
11 | id: 1,
12 | count: "1.9万追剧",
13 | name: "大恋爱",
14 | title: "和喜欢的人一起吃饭",
15 | imageurl: "http://i0.hdslb.com/bfs/bangumi/29e7ea9cf0a619618841caeca1a61032e4f0a2c6.jpg",
16 | },
17 | {
18 | id: 1,
19 | badge: "会员抢先",
20 | count: "1.3万追剧",
21 | name: "万福",
22 | title: "你醒啦",
23 | imageurl: "http://i0.hdslb.com/bfs/bangumi/4c6748f24b0cee23fe71d387a820e7b1e651ccb3.jpg",
24 | },
25 | {
26 | id: 1,
27 | count: "15.6万系列追剧",
28 | name: "双姝 第二季",
29 | title: "即将上线",
30 | imageurl: "http://i0.hdslb.com/bfs/bangumi/5c104fc023c5a6f9b6f59cd83d276a8c86f4d21d.jpg",
31 | },
32 | {
33 | id: 1,
34 | badge: "会员抢先",
35 | count: "9520追剧",
36 | name: "警察之家",
37 | title: "是兔子还是螃蟹",
38 | imageurl: "http://i0.hdslb.com/bfs/bangumi/2bf8fb89f3a386e37e08556d89842590655f3647.png",
39 | },
40 | {
41 | id: 1,
42 | badge: "限时免费",
43 | count: "4.9万追剧",
44 | name: "萤之光 第一季",
45 | title: "情侣同款睡姿",
46 | imageurl: "http://i0.hdslb.com/bfs/bangumi/4a28a26cf87a1f9f4c5a5392b3c69a2f39d64a5c.jpg",
47 | },
48 | {
49 | id: 1,
50 | badge: "会员专享",
51 | count: "1.6万追剧",
52 | name: "原以为命中注定的恋爱",
53 | title: "不会发生在我身上",
54 | imageurl: "http://i0.hdslb.com/bfs/bangumi/9c6401a78ee23cadb7c8338af517e0b1be489535.jpg",
55 | },
56 |
57 | ];
58 |
59 | class MovieThree extends Component {
60 | constructor(props) {
61 | super(props)
62 | this.state = {
63 | flag: true
64 | }
65 | }
66 |
67 | handleClick = () => {
68 | this.setState({ flag: !this.state.flag })
69 | }
70 |
71 |
72 |
73 | render() {
74 |
75 | return (
76 |
77 |
78 |
79 | 电视剧热播
80 |
81 |
82 |
85 |
86 |
87 |
88 | {
89 | cards.map((item, index) => {
90 | const bubble=item.badge ? (
91 |
92 | {item.badge}
93 | ):null
94 |
95 | return (
96 |
97 |
98 |
99 | {bubble}
100 | {item.count}
101 |
102 |
103 | {item.name}
104 | {item.title}
105 |
106 | )
107 |
108 | })
109 | }
110 |
111 |
112 |
117 |
118 |
119 | )
120 | }
121 |
122 | }
123 |
124 | const styles = StyleSheet.create({
125 | //番剧卡片
126 | fanju: {
127 | width: BannerWidth,
128 | height: 525,
129 | marginLeft: screenLeft,
130 | overflow: "hidden",
131 | marginTop: 15,
132 | flex: 1,
133 | // 横向 居中
134 | flexDirection: 'row',
135 | position: "relative",
136 | borderBottomWidth: 0.5,
137 | borderBottomColor: "#DCDCDC",
138 | },
139 | //番剧卡片标题
140 | fanjutitle: {
141 | width: "100%",
142 | height: 30,
143 | flex: 1,
144 | flexDirection: 'row',
145 | fontSize: 5,
146 | fontWeight: "normal"
147 |
148 | },
149 | //番剧卡片的中间六个小卡片
150 | fanjucards: {
151 | width: "100%",
152 | height: 460,
153 | position: "absolute",
154 | top: 30,
155 | left: 0,
156 | right: 0,
157 | borderRadius: 5,
158 | overflow: "hidden",
159 | flex: 1,
160 | flexDirection: "row",
161 | flexWrap: "wrap",
162 | justifyContent: "space-between",
163 | alignContent: "space-between",
164 |
165 | },
166 | //一个小卡片
167 | fanjucard: {
168 | width: "48%",
169 | height: 150,
170 | borderRadius: 5,
171 | overflow: "hidden",
172 | },
173 | //浮在卡片上一层的样式
174 | surface: {
175 | width: "100%",
176 | height: 110,
177 | position: "absolute",
178 | top: 0,
179 | left: 0,
180 | zIndex: 100
181 | },
182 | //左上角 心
183 | surfaceicon: {
184 | width: 30,
185 | height: 25,
186 | fontSize: 22,
187 | borderBottomRightRadius: 5,
188 | textAlign: "center",
189 | lineHeight: 24,
190 | // 设置背景颜色时同时设置透明度 防止背景颜色影响字体颜色
191 | color: "white",
192 | backgroundColor: 'rgba(0, 0, 0, 0.4)',
193 | },
194 |
195 | })
196 |
197 |
198 |
199 |
200 | export default MovieThree;
--------------------------------------------------------------------------------
/src/components/MovieOne.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import { StyleSheet, Image, View, Text, Dimensions, ScrollView } from 'react-native';
3 | import { Container, Header, Content, Card, CardItem, Thumbnail, Button, Icon, Left, Body, Right, Badge } from 'native-base';
4 |
5 | const BannerWidth = (Dimensions.get('window').width * 0.96);
6 | const screenLeft = (Dimensions.get('window').width * 0.02);
7 |
8 | const cards = [
9 | {
10 | id:1,
11 | count: "14.2万追剧",
12 | name: "守护解放西",
13 | title: "9月14日,警动全城",
14 | imageurl:"http://i0.hdslb.com/bfs/bangumi/29e7ea9cf0a619618841caeca1a61032e4f0a2c6.jpg" ,
15 | },
16 | {
17 | id:1,
18 | count: "",
19 | name: "真实的残酷宫斗" ,
20 | title: "亨利八世6位皇后" ,
21 | imageurl: "http://i0.hdslb.com/bfs/bangumi/5a95404be7ecacc69167c3eb5e4d3b5383bef25b.png",
22 | },
23 | {
24 | id:1,
25 | badge: "限时免费",
26 | count: "236.4万系列追剧",
27 | name: "人生一串2",
28 | title: "上串开吃!",
29 | imageurl: "http://i0.hdslb.com/bfs/bangumi/7db272b2e887bb3615a8aee29cf4ed839dc54e82.png",
30 | },
31 | {
32 | id:1,
33 | count:"22.6万系列追剧",
34 | name: "糟糕的历史",
35 | title: "最魔性历史纪录片",
36 | imageurl: "http://i0.hdslb.com/bfs/bangumi/f3091de24e5ff374ae3920513fecce70a63dc039.jpg",
37 | },
38 | {
39 | id:1,
40 | count: "",
41 | name: "FOX的北极之旅",
42 | title: "感受北欧极致壮美",
43 | imageurl: "http://i0.hdslb.com/bfs/bangumi/2a2b86986e3e4fcb183f0a282c439bc5f130e9e6.jpg",
44 | },
45 | {
46 | id:1,
47 | count: "26.2万系列追剧",
48 | name: "我们该玩电子游戏吗",
49 | title: "游戏有助身心健康?",
50 | imageurl:"http://i0.hdslb.com/bfs/bangumi/acda1d7fd8565706b5fd0cb9c0f7b40813467fcc.jpg",
51 | },
52 | // {
53 | // id:1,
54 | // count: "21.1万系列追剧",
55 | // name: "【纪录】中国古建筑 (2012)",
56 | // title: "中国古建筑之“大势",
57 | // imageurl: "https://i0.hdslb.com/bfs/archive/ad068ea233ef0f4e43158bac020a92c9bd0724dc.jpg",
58 | // },
59 | // {
60 | // id:1,
61 | // count: "31.8万系列追剧",
62 | // name: "未至之境(英配版)",
63 | // title: "一起探索无人之境",
64 | // imageurl: "https://i0.hdslb.com/bfs/archive/ffd662bc2eb4959574180187155c80b4a1a087be.png",
65 | // },
66 | ];
67 |
68 | class MovieOne extends Component {
69 | constructor(props) {
70 | super(props)
71 | this.state = {
72 | flag: true
73 | }
74 | }
75 |
76 | handleClick = () => {
77 | this.setState({ flag: !this.state.flag })
78 | }
79 |
80 | render() {
81 |
82 | return (
83 |
84 |
85 |
86 | 纪录片热播
87 |
88 |
89 |
92 |
93 |
94 |
95 | {
96 | cards.map((item, index) => {
97 | const bubble=item.badge ? (
98 |
99 | {item.badge}
100 | ):null
101 |
102 | return (
103 |
104 |
105 |
106 | {bubble}
107 | {item.count}
108 |
109 |
110 | {item.name}
111 | {item.title}
112 |
113 | )
114 |
115 | })
116 | }
117 |
118 |
119 |
124 |
125 |
126 | )
127 | }
128 |
129 | }
130 |
131 | const styles = StyleSheet.create({
132 | //番剧卡片
133 | fanju: {
134 | width: BannerWidth,
135 | height: 525,
136 | marginLeft: screenLeft,
137 | overflow: "hidden",
138 | marginTop: 15,
139 | flex: 1,
140 | // 横向 居中
141 | flexDirection: 'row',
142 | position: "relative",
143 | borderBottomWidth: 0.5,
144 | borderBottomColor: "#DCDCDC",
145 | },
146 | //番剧卡片标题
147 | fanjutitle: {
148 | width: "100%",
149 | height: 30,
150 | flex: 1,
151 | flexDirection: 'row',
152 | fontSize: 5,
153 | fontWeight: "normal"
154 |
155 | },
156 | //番剧卡片的中间六个小卡片
157 | fanjucards: {
158 | width: "100%",
159 | height: 460,
160 | position: "absolute",
161 | top: 30,
162 | left: 0,
163 | right: 0,
164 | borderRadius: 5,
165 | overflow: "hidden",
166 | flexDirection: "row",
167 | flexWrap: "wrap",
168 | justifyContent:"space-between",
169 | alignContent:"space-between"
170 |
171 |
172 | },
173 | //一个小卡片
174 | fanjucard: {
175 | width: "31%",
176 | height: 220,
177 | borderRadius: 5,
178 | overflow: "hidden",
179 |
180 | },
181 | //浮在卡片上一层的样式
182 | surface: {
183 | width: "100%",
184 | height: 180,
185 | position: "absolute",
186 | top: 0,
187 | left: 0,
188 | zIndex: 100
189 | },
190 | //左上角 心
191 | surfaceicon: {
192 | width: 30,
193 | height: 25,
194 | fontSize: 22,
195 | borderBottomRightRadius: 5,
196 | textAlign: "center",
197 | lineHeight: 24,
198 | // 设置背景颜色时同时设置透明度 防止背景颜色影响字体颜色
199 | color: "white",
200 | backgroundColor: 'rgba(0, 0, 0, 0.4)',
201 | },
202 |
203 | })
204 |
205 |
206 |
207 |
208 | export default MovieOne;
--------------------------------------------------------------------------------
/src/components/MovieTwo.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import { StyleSheet, Image, View, Text, Dimensions, ScrollView } from 'react-native';
3 | import { Container, Header, Content, Card, CardItem, Thumbnail, Button, Icon, Left, Body, Right, Badge } from 'native-base';
4 |
5 | const BannerWidth = (Dimensions.get('window').width * 0.96);
6 | const screenLeft = (Dimensions.get('window').width * 0.02);
7 |
8 | const cards = [
9 | {
10 | id:1,
11 | badge: "会员专享",
12 | count: "71万系列追剧",
13 | name: "哈利·波特与死亡圣器(下)",
14 | title: "终极之战打响",
15 | imageurl:"http://i0.hdslb.com/bfs/bangumi/abcafcf95a0853f709d735f10561b993d0fc05bd.jpg" ,
16 | },
17 | {
18 | id:1,
19 | badge: "会员专享",
20 | count: "71万系列追剧",
21 | name: "哈利·波特与死亡圣器(上)" ,
22 | title: "三人组寻找魂器" ,
23 | imageurl: "http://i0.hdslb.com/bfs/bangumi/d435abc79671d66ce826eea03911b3d3074d27b7.jpg",
24 | },
25 | {
26 | id:1,
27 | badge: "会员半价",
28 | count: "14.6万追剧",
29 | name: "蜘蛛侠:英雄远征",
30 | title: "小蜘蛛登陆B站!",
31 | imageurl: "http://i0.hdslb.com/bfs/bangumi/37ecc29ada354bc61b9e237203fff3f4f358f731.jpg",
32 | },
33 | {
34 | id:1,
35 | count:"2.6万追剧",
36 | name: "罗生门",
37 | title: "黑泽明经典悬疑神作",
38 | imageurl:"http://i0.hdslb.com/bfs/bangumi/9050447827d4c7fd88f6a8c536b84e3a0e1b6912.jpg",
39 | },
40 | {
41 | id:1,
42 | count: "73.6万追剧",
43 | name: "我想吃掉你的胰脏",
44 | title: "免费首播!",
45 | imageurl: "http://i0.hdslb.com/bfs/bangumi/fd5891a000ecdf6e76fdfea1fc204776f728c9ba.jpg",
46 | },
47 | {
48 | id:1,
49 | count: "9992追剧",
50 | name: "东京物语",
51 | title: "东京真的太远了",
52 | imageurl:"http://i0.hdslb.com/bfs/bangumi/42af0d04487472725d24ff3bfa01a347f87e7248.jpg",
53 | },
54 | // {
55 | // id:1,
56 | // count: "2.8万追剧",
57 | // name: "毒战",
58 | // title: "【古天乐/孙红雷】",
59 | // imageurl: "https://i0.hdslb.com/bfs/archive/9ca6b32956a8abbcae1cb9db17ddaa71509446f8.jpg",
60 | // },
61 | // {
62 | // id:1,
63 | // count: "13.2万追剧",
64 | // name: "怦然心动",
65 | // title: "重温心动初恋",
66 | // imageurl:"https://i1.hdslb.com/bfs/archive/94b509c59ceb8ad29f47fa39630367b860e96d48.jpg",
67 | // },
68 | ];
69 |
70 | class MovieTwo extends Component {
71 | constructor(props) {
72 | super(props)
73 | this.state = {
74 | flag: true
75 | }
76 | }
77 |
78 | handleClick = () => {
79 | this.setState({ flag: !this.state.flag })
80 | }
81 |
82 | render() {
83 |
84 | return (
85 |
86 |
87 |
88 | 电影热播
89 |
90 |
91 |
94 |
95 |
96 |
97 | {
98 | cards.map((item, index) => {
99 | const bubble=item.badge ? (
100 |
101 | {item.badge}
102 | ):null
103 |
104 | return (
105 |
106 |
107 |
108 | {bubble}
109 | {item.count}
110 |
111 |
112 | {item.name}
113 | {item.title}
114 |
115 | )
116 |
117 | })
118 | }
119 |
120 |
121 |
126 |
127 |
128 | )
129 | }
130 |
131 | }
132 |
133 | const styles = StyleSheet.create({
134 | //番剧卡片
135 | fanju: {
136 | width: BannerWidth,
137 | height: 525,
138 | marginLeft: screenLeft,
139 | overflow: "hidden",
140 | marginTop: 15,
141 | flex: 1,
142 | // 横向 居中
143 | flexDirection: 'row',
144 | position: "relative",
145 | borderBottomWidth: 0.5,
146 | borderBottomColor: "#DCDCDC",
147 | },
148 | //番剧卡片标题
149 | fanjutitle: {
150 | width: "100%",
151 | height: 30,
152 | flex: 1,
153 | flexDirection: 'row',
154 | fontSize: 5,
155 | fontWeight: "normal"
156 |
157 | },
158 | //番剧卡片的中间六个小卡片
159 | fanjucards: {
160 | width: "100%",
161 | height: 460,
162 | position: "absolute",
163 | top: 30,
164 | left: 0,
165 | right: 0,
166 | borderRadius: 5,
167 | overflow: "hidden",
168 | flexDirection: "row",
169 | flexWrap: "wrap",
170 | justifyContent:"space-between",
171 | alignContent:"space-between"
172 |
173 |
174 | },
175 | //一个小卡片
176 | fanjucard: {
177 | width: "31%",
178 | height: 220,
179 | borderRadius: 5,
180 | overflow: "hidden",
181 |
182 | },
183 | //浮在卡片上一层的样式
184 | surface: {
185 | width: "100%",
186 | height: 180,
187 | position: "absolute",
188 | top: 0,
189 | left: 0,
190 | zIndex: 100
191 | },
192 | //左上角 心
193 | surfaceicon: {
194 | width: 30,
195 | height: 25,
196 | fontSize: 22,
197 | borderBottomRightRadius: 5,
198 | textAlign: "center",
199 | lineHeight: 24,
200 | // 设置背景颜色时同时设置透明度 防止背景颜色影响字体颜色
201 | color: "white",
202 | backgroundColor: 'rgba(0, 0, 0, 0.4)',
203 | },
204 |
205 | })
206 |
207 |
208 |
209 |
210 | export default MovieTwo;
--------------------------------------------------------------------------------
/android/app/src/main/res/raw/node_modules_reactnativevectoricons_glyphmaps_feather.json:
--------------------------------------------------------------------------------
1 | {
2 | "activity": 61696,
3 | "airplay": 61697,
4 | "alert-circle": 61698,
5 | "alert-octagon": 61699,
6 | "alert-triangle": 61700,
7 | "align-center": 61701,
8 | "align-justify": 61702,
9 | "align-left": 61703,
10 | "align-right": 61704,
11 | "anchor": 61705,
12 | "aperture": 61706,
13 | "archive": 61707,
14 | "arrow-down": 61708,
15 | "arrow-down-circle": 61709,
16 | "arrow-down-left": 61710,
17 | "arrow-down-right": 61711,
18 | "arrow-left": 61712,
19 | "arrow-left-circle": 61713,
20 | "arrow-right": 61714,
21 | "arrow-right-circle": 61715,
22 | "arrow-up": 61716,
23 | "arrow-up-circle": 61717,
24 | "arrow-up-left": 61718,
25 | "arrow-up-right": 61719,
26 | "at-sign": 61720,
27 | "award": 61721,
28 | "bar-chart": 61722,
29 | "bar-chart-2": 61723,
30 | "battery": 61724,
31 | "battery-charging": 61725,
32 | "bell": 61726,
33 | "bell-off": 61727,
34 | "bluetooth": 61728,
35 | "bold": 61729,
36 | "book": 61730,
37 | "book-open": 61731,
38 | "bookmark": 61732,
39 | "box": 61733,
40 | "briefcase": 61734,
41 | "calendar": 61735,
42 | "camera": 61736,
43 | "camera-off": 61737,
44 | "cast": 61738,
45 | "check": 61739,
46 | "check-circle": 61740,
47 | "check-square": 61741,
48 | "chevron-down": 61742,
49 | "chevron-left": 61743,
50 | "chevron-right": 61744,
51 | "chevron-up": 61745,
52 | "chevrons-down": 61746,
53 | "chevrons-left": 61747,
54 | "chevrons-right": 61748,
55 | "chevrons-up": 61749,
56 | "chrome": 61750,
57 | "circle": 61751,
58 | "clipboard": 61752,
59 | "clock": 61753,
60 | "cloud": 61754,
61 | "cloud-drizzle": 61755,
62 | "cloud-lightning": 61756,
63 | "cloud-off": 61757,
64 | "cloud-rain": 61758,
65 | "cloud-snow": 61759,
66 | "code": 61760,
67 | "codepen": 61761,
68 | "codesandbox": 61972,
69 | "coffee": 61762,
70 | "columns": 61973,
71 | "command": 61763,
72 | "compass": 61764,
73 | "copy": 61765,
74 | "corner-down-left": 61766,
75 | "corner-down-right": 61767,
76 | "corner-left-down": 61768,
77 | "corner-left-up": 61769,
78 | "corner-right-down": 61770,
79 | "corner-right-up": 61771,
80 | "corner-up-left": 61772,
81 | "corner-up-right": 61773,
82 | "cpu": 61774,
83 | "credit-card": 61775,
84 | "crop": 61776,
85 | "crosshair": 61777,
86 | "database": 61778,
87 | "delete": 61779,
88 | "disc": 61780,
89 | "dollar-sign": 61781,
90 | "download": 61782,
91 | "download-cloud": 61783,
92 | "droplet": 61784,
93 | "edit": 61785,
94 | "edit-2": 61786,
95 | "edit-3": 61787,
96 | "external-link": 61788,
97 | "eye": 61789,
98 | "eye-off": 61790,
99 | "facebook": 61791,
100 | "fast-forward": 61792,
101 | "feather": 61793,
102 | "figma": 61970,
103 | "file": 61794,
104 | "file-minus": 61795,
105 | "file-plus": 61796,
106 | "file-text": 61797,
107 | "film": 61798,
108 | "filter": 61799,
109 | "flag": 61800,
110 | "folder": 61801,
111 | "folder-minus": 61802,
112 | "folder-plus": 61803,
113 | "frown": 61804,
114 | "gift": 61805,
115 | "git-branch": 61806,
116 | "git-commit": 61807,
117 | "git-merge": 61808,
118 | "git-pull-request": 61809,
119 | "github": 61810,
120 | "gitlab": 61811,
121 | "globe": 61812,
122 | "grid": 61813,
123 | "hard-drive": 61814,
124 | "hash": 61815,
125 | "headphones": 61816,
126 | "heart": 61817,
127 | "help-circle": 61818,
128 | "hexagon": 61974,
129 | "home": 61819,
130 | "image": 61820,
131 | "inbox": 61821,
132 | "info": 61822,
133 | "instagram": 61823,
134 | "italic": 61824,
135 | "key": 61967,
136 | "layers": 61825,
137 | "layout": 61826,
138 | "life-buoy": 61827,
139 | "link": 61828,
140 | "link-2": 61829,
141 | "linkedin": 61830,
142 | "list": 61831,
143 | "loader": 61832,
144 | "lock": 61833,
145 | "log-in": 61834,
146 | "log-out": 61835,
147 | "mail": 61836,
148 | "map": 61837,
149 | "map-pin": 61838,
150 | "maximize": 61839,
151 | "maximize-2": 61840,
152 | "meh": 61841,
153 | "menu": 61842,
154 | "message-circle": 61843,
155 | "message-square": 61844,
156 | "mic": 61845,
157 | "mic-off": 61846,
158 | "minimize": 61847,
159 | "minimize-2": 61848,
160 | "minus": 61849,
161 | "minus-circle": 61850,
162 | "minus-square": 61851,
163 | "monitor": 61852,
164 | "moon": 61853,
165 | "more-horizontal": 61854,
166 | "more-vertical": 61855,
167 | "mouse-pointer": 61968,
168 | "move": 61856,
169 | "music": 61857,
170 | "navigation": 61858,
171 | "navigation-2": 61859,
172 | "octagon": 61860,
173 | "package": 61861,
174 | "paperclip": 61862,
175 | "pause": 61863,
176 | "pause-circle": 61864,
177 | "pen-tool": 61969,
178 | "percent": 61865,
179 | "phone": 61866,
180 | "phone-call": 61867,
181 | "phone-forwarded": 61868,
182 | "phone-incoming": 61869,
183 | "phone-missed": 61870,
184 | "phone-off": 61871,
185 | "phone-outgoing": 61872,
186 | "pie-chart": 61873,
187 | "play": 61874,
188 | "play-circle": 61875,
189 | "plus": 61876,
190 | "plus-circle": 61877,
191 | "plus-square": 61878,
192 | "pocket": 61879,
193 | "power": 61880,
194 | "printer": 61881,
195 | "radio": 61882,
196 | "refresh-ccw": 61883,
197 | "refresh-cw": 61884,
198 | "repeat": 61885,
199 | "rewind": 61886,
200 | "rotate-ccw": 61887,
201 | "rotate-cw": 61888,
202 | "rss": 61889,
203 | "save": 61890,
204 | "scissors": 61891,
205 | "search": 61892,
206 | "send": 61893,
207 | "server": 61894,
208 | "settings": 61895,
209 | "share": 61896,
210 | "share-2": 61897,
211 | "shield": 61898,
212 | "shield-off": 61899,
213 | "shopping-bag": 61900,
214 | "shopping-cart": 61901,
215 | "shuffle": 61902,
216 | "sidebar": 61903,
217 | "skip-back": 61904,
218 | "skip-forward": 61905,
219 | "slack": 61906,
220 | "slash": 61907,
221 | "sliders": 61908,
222 | "smartphone": 61909,
223 | "smile": 61910,
224 | "speaker": 61911,
225 | "square": 61912,
226 | "star": 61913,
227 | "stop-circle": 61914,
228 | "sun": 61915,
229 | "sunrise": 61916,
230 | "sunset": 61917,
231 | "tablet": 61975,
232 | "tag": 61919,
233 | "target": 61920,
234 | "terminal": 61921,
235 | "thermometer": 61922,
236 | "thumbs-down": 61923,
237 | "thumbs-up": 61924,
238 | "toggle-left": 61925,
239 | "toggle-right": 61926,
240 | "trash": 61927,
241 | "trash-2": 61928,
242 | "trello": 61929,
243 | "trending-down": 61930,
244 | "trending-up": 61931,
245 | "triangle": 61932,
246 | "truck": 61933,
247 | "tv": 61934,
248 | "twitter": 61935,
249 | "type": 61936,
250 | "umbrella": 61937,
251 | "underline": 61938,
252 | "unlock": 61939,
253 | "upload": 61940,
254 | "upload-cloud": 61941,
255 | "user": 61942,
256 | "user-check": 61943,
257 | "user-minus": 61944,
258 | "user-plus": 61945,
259 | "user-x": 61946,
260 | "users": 61947,
261 | "video": 61948,
262 | "video-off": 61949,
263 | "voicemail": 61950,
264 | "volume": 61951,
265 | "volume-1": 61952,
266 | "volume-2": 61953,
267 | "volume-x": 61954,
268 | "watch": 61955,
269 | "wifi": 61956,
270 | "wifi-off": 61957,
271 | "wind": 61958,
272 | "x": 61959,
273 | "x-circle": 61960,
274 | "x-octagon": 61971,
275 | "x-square": 61961,
276 | "youtube": 61962,
277 | "zap": 61963,
278 | "zap-off": 61964,
279 | "zoom-in": 61965,
280 | "zoom-out": 61966
281 | }
--------------------------------------------------------------------------------
/android/app/src/main/res/raw/node_modules_reactnativevectoricons_glyphmaps_antdesign.json:
--------------------------------------------------------------------------------
1 | {
2 | "stepforward": 58880,
3 | "stepbackward": 58881,
4 | "forward": 58882,
5 | "banckward": 58883,
6 | "caretright": 58884,
7 | "caretleft": 58885,
8 | "caretdown": 58886,
9 | "caretup": 58887,
10 | "rightcircle": 58888,
11 | "leftcircle": 58889,
12 | "upcircle": 58890,
13 | "downcircle": 58891,
14 | "rightcircleo": 58892,
15 | "leftcircleo": 58893,
16 | "upcircleo": 58894,
17 | "downcircleo": 58895,
18 | "verticleleft": 58896,
19 | "verticleright": 58897,
20 | "back": 58898,
21 | "retweet": 58899,
22 | "shrink": 58900,
23 | "arrowsalt": 58901,
24 | "doubleright": 58903,
25 | "doubleleft": 58904,
26 | "arrowdown": 58905,
27 | "arrowup": 58906,
28 | "arrowright": 58907,
29 | "arrowleft": 58908,
30 | "down": 58909,
31 | "up": 58910,
32 | "right": 58911,
33 | "left": 58912,
34 | "minussquareo": 58913,
35 | "minuscircle": 58914,
36 | "minuscircleo": 58915,
37 | "minus": 58916,
38 | "pluscircleo": 58917,
39 | "pluscircle": 58918,
40 | "plus": 58919,
41 | "infocirlce": 58920,
42 | "infocirlceo": 58921,
43 | "info": 58922,
44 | "exclamation": 58923,
45 | "exclamationcircle": 58924,
46 | "exclamationcircleo": 58925,
47 | "closecircle": 58926,
48 | "closecircleo": 58927,
49 | "checkcircle": 58928,
50 | "checkcircleo": 58929,
51 | "check": 58930,
52 | "close": 58931,
53 | "customerservice": 58932,
54 | "creditcard": 58933,
55 | "codesquareo": 58934,
56 | "book": 58935,
57 | "barschart": 58936,
58 | "bars": 58937,
59 | "question": 58938,
60 | "questioncircle": 58939,
61 | "questioncircleo": 58940,
62 | "pause": 58941,
63 | "pausecircle": 58942,
64 | "pausecircleo": 58943,
65 | "clockcircle": 58944,
66 | "clockcircleo": 58945,
67 | "swap": 58946,
68 | "swapleft": 58947,
69 | "swapright": 58948,
70 | "plussquareo": 58949,
71 | "frown": 58950,
72 | "menufold": 58968,
73 | "mail": 58969,
74 | "link": 58971,
75 | "areachart": 58972,
76 | "linechart": 58973,
77 | "home": 58974,
78 | "laptop": 58975,
79 | "star": 58976,
80 | "staro": 58977,
81 | "filter": 58979,
82 | "meho": 58982,
83 | "meh": 58983,
84 | "shoppingcart": 58984,
85 | "save": 58985,
86 | "user": 58986,
87 | "videocamera": 58987,
88 | "totop": 58988,
89 | "team": 58989,
90 | "sharealt": 58993,
91 | "setting": 58994,
92 | "picture": 58996,
93 | "phone": 58997,
94 | "paperclip": 58998,
95 | "notification": 58999,
96 | "menuunfold": 59001,
97 | "inbox": 59002,
98 | "lock": 59003,
99 | "qrcode": 59004,
100 | "tags": 59005,
101 | "tagso": 59006,
102 | "cloudo": 59007,
103 | "cloud": 59008,
104 | "cloudupload": 59009,
105 | "clouddownload": 59010,
106 | "clouddownloado": 59011,
107 | "clouduploado": 59012,
108 | "enviroment": 59013,
109 | "enviromento": 59014,
110 | "eye": 59015,
111 | "eyeo": 59016,
112 | "camera": 59017,
113 | "camerao": 59018,
114 | "windows": 59019,
115 | "export2": 59024,
116 | "export": 59025,
117 | "circledowno": 59027,
118 | "circledown": 59028,
119 | "hdd": 59034,
120 | "ie": 59035,
121 | "delete": 59039,
122 | "enter": 59040,
123 | "pushpino": 59041,
124 | "pushpin": 59042,
125 | "heart": 59043,
126 | "hearto": 59044,
127 | "smile-circle": 59047,
128 | "smileo": 59048,
129 | "frowno": 59049,
130 | "calculator": 59050,
131 | "chrome": 59052,
132 | "github": 59053,
133 | "iconfontdesktop": 59060,
134 | "caretcircleoup": 59061,
135 | "upload": 59062,
136 | "download": 59063,
137 | "piechart": 59064,
138 | "lock1": 59065,
139 | "unlock": 59066,
140 | "windowso": 59068,
141 | "dotchart": 59069,
142 | "barchart": 59070,
143 | "codesquare": 59071,
144 | "plussquare": 59072,
145 | "minussquare": 59073,
146 | "closesquare": 59074,
147 | "closesquareo": 59075,
148 | "checksquare": 59076,
149 | "checksquareo": 59077,
150 | "fastbackward": 59078,
151 | "fastforward": 59079,
152 | "upsquare": 59080,
153 | "downsquare": 59081,
154 | "leftsquare": 59082,
155 | "rightsquare": 59083,
156 | "rightsquareo": 59084,
157 | "leftsquareo": 59085,
158 | "down-square-o": 59086,
159 | "up-square-o": 59087,
160 | "play": 59088,
161 | "playcircleo": 59089,
162 | "tag": 59090,
163 | "tago": 59091,
164 | "addfile": 59664,
165 | "folder1": 58978,
166 | "file1": 58980,
167 | "switcher": 59667,
168 | "addfolder": 59668,
169 | "folderopen": 59033,
170 | "search1": 58992,
171 | "ellipsis1": 58951,
172 | "calendar": 59067,
173 | "filetext1": 59032,
174 | "copy1": 58952,
175 | "jpgfile1": 59036,
176 | "pdffile1": 59059,
177 | "exclefile1": 59056,
178 | "pptfile1": 59057,
179 | "unknowfile1": 59055,
180 | "wordfile1": 59058,
181 | "dingding": 59683,
182 | "dingding-o": 59685,
183 | "mobile1": 59000,
184 | "tablet1": 58990,
185 | "bells": 58958,
186 | "disconnect": 58959,
187 | "database": 58960,
188 | "barcode": 58962,
189 | "hourglass": 58963,
190 | "key": 58964,
191 | "flag": 58965,
192 | "layout": 58966,
193 | "printer": 58995,
194 | "USB": 59095,
195 | "skin": 59096,
196 | "tool": 59097,
197 | "car": 59100,
198 | "addusergroup": 59101,
199 | "carryout": 59103,
200 | "deleteuser": 59104,
201 | "deleteusergroup": 59105,
202 | "man": 59106,
203 | "isv": 59107,
204 | "gift": 59108,
205 | "idcard": 59109,
206 | "medicinebox": 59110,
207 | "redenvelopes": 59111,
208 | "rest": 59112,
209 | "Safety": 59114,
210 | "wallet": 59115,
211 | "woman": 59116,
212 | "adduser": 59117,
213 | "bank": 59118,
214 | "Trophy": 59119,
215 | "loading1": 59054,
216 | "loading2": 58957,
217 | "like2": 59037,
218 | "dislike2": 59038,
219 | "like1": 58956,
220 | "dislike1": 58955,
221 | "bulb1": 58953,
222 | "rocket1": 59663,
223 | "select1": 58954,
224 | "apple1": 59020,
225 | "apple-o": 59092,
226 | "android1": 59704,
227 | "android": 59021,
228 | "aliwangwang-o1": 59023,
229 | "aliwangwang": 59022,
230 | "pay-circle1": 59045,
231 | "pay-circle-o1": 59046,
232 | "poweroff": 59093,
233 | "trademark": 58961,
234 | "find": 59099,
235 | "copyright": 59102,
236 | "sound": 59113,
237 | "earth": 59121,
238 | "wifi": 59094,
239 | "sync": 59098,
240 | "login": 58967,
241 | "logout": 58970,
242 | "reload1": 58902,
243 | "message1": 59051,
244 | "shake": 59727,
245 | "API": 59729,
246 | "appstore-o": 59029,
247 | "appstore1": 59030,
248 | "scan1": 59031,
249 | "exception1": 58981,
250 | "contacts": 59120,
251 | "solution1": 58991,
252 | "fork": 59122,
253 | "edit": 59026,
254 | "form": 59798,
255 | "warning": 59799,
256 | "table": 59800,
257 | "profile": 59801,
258 | "dashboard": 59802,
259 | "indent-left": 59814,
260 | "indent-right": 59815,
261 | "menu-unfold": 59820,
262 | "menu-fold": 59821,
263 | "antdesign": 59826,
264 | "alipay-square": 59827,
265 | "codepen-circle": 59828,
266 | "google": 59829,
267 | "amazon": 59830,
268 | "codepen": 59831,
269 | "facebook-square": 59832,
270 | "dropbox": 59833,
271 | "googleplus": 59834,
272 | "linkedin-square": 59835,
273 | "medium-monogram": 59836,
274 | "gitlab": 59837,
275 | "medium-wordmark": 59838,
276 | "QQ": 59839,
277 | "skype": 59840,
278 | "taobao-square": 59841,
279 | "alipay-circle": 59842,
280 | "youtube": 59843,
281 | "wechat": 59844,
282 | "twitter": 59845,
283 | "weibo": 59846,
284 | "HTML": 59847,
285 | "taobao-circle": 59123,
286 | "weibo-circle": 59124,
287 | "weibo-square": 59125,
288 | "CodeSandbox": 59860,
289 | "aliyun": 59892,
290 | "zhihu": 59139,
291 | "behance": 59143,
292 | "dribbble": 59145,
293 | "dribbble-square": 59146,
294 | "behance-square": 59144,
295 | "file-markdown": 59140,
296 | "instagram": 59147,
297 | "yuque": 59148,
298 | "slack": 59141,
299 | "slack-square": 59142
300 | }
--------------------------------------------------------------------------------
/android/app/src/main/res/raw/node_modules_reactnativevectoricons_glyphmaps_foundation.json:
--------------------------------------------------------------------------------
1 | {
2 | "address-book": 61696,
3 | "alert": 61697,
4 | "align-center": 61698,
5 | "align-justify": 61699,
6 | "align-left": 61700,
7 | "align-right": 61701,
8 | "anchor": 61702,
9 | "annotate": 61703,
10 | "archive": 61704,
11 | "arrow-down": 61705,
12 | "arrow-left": 61706,
13 | "arrow-right": 61707,
14 | "arrow-up": 61708,
15 | "arrows-compress": 61709,
16 | "arrows-expand": 61710,
17 | "arrows-in": 61711,
18 | "arrows-out": 61712,
19 | "asl": 61713,
20 | "asterisk": 61714,
21 | "at-sign": 61715,
22 | "background-color": 61716,
23 | "battery-empty": 61717,
24 | "battery-full": 61718,
25 | "battery-half": 61719,
26 | "bitcoin-circle": 61720,
27 | "bitcoin": 61721,
28 | "blind": 61722,
29 | "bluetooth": 61723,
30 | "bold": 61724,
31 | "book-bookmark": 61725,
32 | "book": 61726,
33 | "bookmark": 61727,
34 | "braille": 61728,
35 | "burst-new": 61729,
36 | "burst-sale": 61730,
37 | "burst": 61731,
38 | "calendar": 61732,
39 | "camera": 61733,
40 | "check": 61734,
41 | "checkbox": 61735,
42 | "clipboard-notes": 61736,
43 | "clipboard-pencil": 61737,
44 | "clipboard": 61738,
45 | "clock": 61739,
46 | "closed-caption": 61740,
47 | "cloud": 61741,
48 | "comment-minus": 61742,
49 | "comment-quotes": 61743,
50 | "comment-video": 61744,
51 | "comment": 61745,
52 | "comments": 61746,
53 | "compass": 61747,
54 | "contrast": 61748,
55 | "credit-card": 61749,
56 | "crop": 61750,
57 | "crown": 61751,
58 | "css3": 61752,
59 | "database": 61753,
60 | "die-five": 61754,
61 | "die-four": 61755,
62 | "die-one": 61756,
63 | "die-six": 61757,
64 | "die-three": 61758,
65 | "die-two": 61759,
66 | "dislike": 61760,
67 | "dollar-bill": 61761,
68 | "dollar": 61762,
69 | "download": 61763,
70 | "eject": 61764,
71 | "elevator": 61765,
72 | "euro": 61766,
73 | "eye": 61767,
74 | "fast-forward": 61768,
75 | "female-symbol": 61769,
76 | "female": 61770,
77 | "filter": 61771,
78 | "first-aid": 61772,
79 | "flag": 61773,
80 | "folder-add": 61774,
81 | "folder-lock": 61775,
82 | "folder": 61776,
83 | "foot": 61777,
84 | "foundation": 61778,
85 | "graph-bar": 61779,
86 | "graph-horizontal": 61780,
87 | "graph-pie": 61781,
88 | "graph-trend": 61782,
89 | "guide-dog": 61783,
90 | "hearing-aid": 61784,
91 | "heart": 61785,
92 | "home": 61786,
93 | "html5": 61787,
94 | "indent-less": 61788,
95 | "indent-more": 61789,
96 | "info": 61790,
97 | "italic": 61791,
98 | "key": 61792,
99 | "laptop": 61793,
100 | "layout": 61794,
101 | "lightbulb": 61795,
102 | "like": 61796,
103 | "link": 61797,
104 | "list-bullet": 61798,
105 | "list-number": 61799,
106 | "list-thumbnails": 61800,
107 | "list": 61801,
108 | "lock": 61802,
109 | "loop": 61803,
110 | "magnifying-glass": 61804,
111 | "mail": 61805,
112 | "male-female": 61806,
113 | "male-symbol": 61807,
114 | "male": 61808,
115 | "map": 61809,
116 | "marker": 61810,
117 | "megaphone": 61811,
118 | "microphone": 61812,
119 | "minus-circle": 61813,
120 | "minus": 61814,
121 | "mobile-signal": 61815,
122 | "mobile": 61816,
123 | "monitor": 61817,
124 | "mountains": 61818,
125 | "music": 61819,
126 | "next": 61820,
127 | "no-dogs": 61821,
128 | "no-smoking": 61822,
129 | "page-add": 61823,
130 | "page-copy": 61824,
131 | "page-csv": 61825,
132 | "page-delete": 61826,
133 | "page-doc": 61827,
134 | "page-edit": 61828,
135 | "page-export-csv": 61829,
136 | "page-export-doc": 61830,
137 | "page-export-pdf": 61831,
138 | "page-export": 61832,
139 | "page-filled": 61833,
140 | "page-multiple": 61834,
141 | "page-pdf": 61835,
142 | "page-remove": 61836,
143 | "page-search": 61837,
144 | "page": 61838,
145 | "paint-bucket": 61839,
146 | "paperclip": 61840,
147 | "pause": 61841,
148 | "paw": 61842,
149 | "paypal": 61843,
150 | "pencil": 61844,
151 | "photo": 61845,
152 | "play-circle": 61846,
153 | "play-video": 61847,
154 | "play": 61848,
155 | "plus": 61849,
156 | "pound": 61850,
157 | "power": 61851,
158 | "previous": 61852,
159 | "price-tag": 61853,
160 | "pricetag-multiple": 61854,
161 | "print": 61855,
162 | "prohibited": 61856,
163 | "projection-screen": 61857,
164 | "puzzle": 61858,
165 | "quote": 61859,
166 | "record": 61860,
167 | "refresh": 61861,
168 | "results-demographics": 61862,
169 | "results": 61863,
170 | "rewind-ten": 61864,
171 | "rewind": 61865,
172 | "rss": 61866,
173 | "safety-cone": 61867,
174 | "save": 61868,
175 | "share": 61869,
176 | "sheriff-badge": 61870,
177 | "shield": 61871,
178 | "shopping-bag": 61872,
179 | "shopping-cart": 61873,
180 | "shuffle": 61874,
181 | "skull": 61875,
182 | "social-500px": 61876,
183 | "social-adobe": 61877,
184 | "social-amazon": 61878,
185 | "social-android": 61879,
186 | "social-apple": 61880,
187 | "social-behance": 61881,
188 | "social-bing": 61882,
189 | "social-blogger": 61883,
190 | "social-delicious": 61884,
191 | "social-designer-news": 61885,
192 | "social-deviant-art": 61886,
193 | "social-digg": 61887,
194 | "social-dribbble": 61888,
195 | "social-drive": 61889,
196 | "social-dropbox": 61890,
197 | "social-evernote": 61891,
198 | "social-facebook": 61892,
199 | "social-flickr": 61893,
200 | "social-forrst": 61894,
201 | "social-foursquare": 61895,
202 | "social-game-center": 61896,
203 | "social-github": 61897,
204 | "social-google-plus": 61898,
205 | "social-hacker-news": 61899,
206 | "social-hi5": 61900,
207 | "social-instagram": 61901,
208 | "social-joomla": 61902,
209 | "social-lastfm": 61903,
210 | "social-linkedin": 61904,
211 | "social-medium": 61905,
212 | "social-myspace": 61906,
213 | "social-orkut": 61907,
214 | "social-path": 61908,
215 | "social-picasa": 61909,
216 | "social-pinterest": 61910,
217 | "social-rdio": 61911,
218 | "social-reddit": 61912,
219 | "social-skillshare": 61913,
220 | "social-skype": 61914,
221 | "social-smashing-mag": 61915,
222 | "social-snapchat": 61916,
223 | "social-spotify": 61917,
224 | "social-squidoo": 61918,
225 | "social-stack-overflow": 61919,
226 | "social-steam": 61920,
227 | "social-stumbleupon": 61921,
228 | "social-treehouse": 61922,
229 | "social-tumblr": 61923,
230 | "social-twitter": 61924,
231 | "social-vimeo": 61925,
232 | "social-windows": 61926,
233 | "social-xbox": 61927,
234 | "social-yahoo": 61928,
235 | "social-yelp": 61929,
236 | "social-youtube": 61930,
237 | "social-zerply": 61931,
238 | "social-zurb": 61932,
239 | "sound": 61933,
240 | "star": 61934,
241 | "stop": 61935,
242 | "strikethrough": 61936,
243 | "subscript": 61937,
244 | "superscript": 61938,
245 | "tablet-landscape": 61939,
246 | "tablet-portrait": 61940,
247 | "target-two": 61941,
248 | "target": 61942,
249 | "telephone-accessible": 61943,
250 | "telephone": 61944,
251 | "text-color": 61945,
252 | "thumbnails": 61946,
253 | "ticket": 61947,
254 | "torso-business": 61948,
255 | "torso-female": 61949,
256 | "torso": 61950,
257 | "torsos-all-female": 61951,
258 | "torsos-all": 61952,
259 | "torsos-female-male": 61953,
260 | "torsos-male-female": 61954,
261 | "torsos": 61955,
262 | "trash": 61956,
263 | "trees": 61957,
264 | "trophy": 61958,
265 | "underline": 61959,
266 | "universal-access": 61960,
267 | "unlink": 61961,
268 | "unlock": 61962,
269 | "upload-cloud": 61963,
270 | "upload": 61964,
271 | "usb": 61965,
272 | "video": 61966,
273 | "volume-none": 61967,
274 | "volume-strike": 61968,
275 | "volume": 61969,
276 | "web": 61970,
277 | "wheelchair": 61971,
278 | "widget": 61972,
279 | "wrench": 61973,
280 | "x-circle": 61974,
281 | "x": 61975,
282 | "yen": 61976,
283 | "zoom-in": 61977,
284 | "zoom-out": 61978
285 | }
--------------------------------------------------------------------------------