From 0720b9e2e2034632a976ec8ede46e1be7e26dbb8 Mon Sep 17 00:00:00 2001 From: sverben <59171289+sverben@users.noreply.github.com> Date: Sat, 13 Apr 2024 14:15:49 +0200 Subject: [PATCH] first commit --- .github/workflows/android.yml | 45 + .github/workflows/ios.yml | 39 + .gitignore | 37 + App.tsx | 86 + app.json | 64 + assets/adaptive-icon.png | Bin 0 -> 29987 bytes assets/favicon.png | Bin 0 -> 1466 bytes assets/icon.png | Bin 0 -> 41816 bytes assets/splash.png | Bin 0 -> 47695 bytes babel.config.js | 6 + google-services.json | 29 + package-lock.json | 12845 ++++++++++++++++++++++++++ package.json | 47 + src/__generated__/media.ts | 513 + src/auth.tsx | 317 + src/components/feed/feed.tsx | 39 + src/components/feed/item.tsx | 41 + src/components/media/preview.tsx | 32 + src/components/navbar.tsx | 15 + src/components/register/listing.tsx | 60 + src/screens/feed/feed.tsx | 72 + src/screens/feed/search.tsx | 146 + src/screens/feed/slot.tsx | 99 + src/screens/home.tsx | 37 + src/screens/media/album.tsx | 126 + src/screens/media/media.tsx | 68 + src/screens/media/slides.tsx | 65 + src/screens/settings.tsx | 48 + src/screens/web.tsx | 33 + src/stores/feed.ts | 61 + src/stores/media.ts | 17 + src/stores/register.ts | 24 + tsconfig.json | 6 + yarn.lock | 7570 +++++++++++++++ 34 files changed, 22587 insertions(+) create mode 100644 .github/workflows/android.yml create mode 100644 .github/workflows/ios.yml create mode 100644 .gitignore create mode 100644 App.tsx create mode 100644 app.json create mode 100644 assets/adaptive-icon.png create mode 100644 assets/favicon.png create mode 100644 assets/icon.png create mode 100644 assets/splash.png create mode 100644 babel.config.js create mode 100644 google-services.json create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 src/__generated__/media.ts create mode 100644 src/auth.tsx create mode 100644 src/components/feed/feed.tsx create mode 100644 src/components/feed/item.tsx create mode 100644 src/components/media/preview.tsx create mode 100644 src/components/navbar.tsx create mode 100644 src/components/register/listing.tsx create mode 100644 src/screens/feed/feed.tsx create mode 100644 src/screens/feed/search.tsx create mode 100644 src/screens/feed/slot.tsx create mode 100644 src/screens/home.tsx create mode 100644 src/screens/media/album.tsx create mode 100644 src/screens/media/media.tsx create mode 100644 src/screens/media/slides.tsx create mode 100644 src/screens/settings.tsx create mode 100644 src/screens/web.tsx create mode 100644 src/stores/feed.ts create mode 100644 src/stores/media.ts create mode 100644 src/stores/register.ts create mode 100644 tsconfig.json create mode 100644 yarn.lock diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml new file mode 100644 index 0000000..019ff85 --- /dev/null +++ b/.github/workflows/android.yml @@ -0,0 +1,45 @@ +name: "Build and Deploy" +on: + push: + tags: + - v* +env: + EAS_BUILD_ARGS: --non-interactive --profile production --local + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Setup Node + uses: actions/setup-node@v2 + with: + node-version: '20.x' + + - uses: actions/setup-java@v4 + with: + distribution: 'adopt' + java-version: '17' + + - name: Setup Expo + uses: expo/expo-github-action@v7 + with: + token: ${{ secrets.EXPO_TOKEN }} + expo-version: latest + eas-version: latest + + - name: Install dependencies + run: npm ci + + - name: Build app for Android + run: eas build --output ./android.aab --platform android ${{ env.EAS_BUILD_ARGS }} + + - name: Upload to Google Play Console + uses: r0adkll/upload-google-play@v1 + with: + serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }} + packageName: nl.djoamersfoort.djo + releaseFiles: ./android.aab + track: draft + changesNotSentForReview: true diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml new file mode 100644 index 0000000..71a277f --- /dev/null +++ b/.github/workflows/ios.yml @@ -0,0 +1,39 @@ +name: "Build and Deploy" +on: + push: + tags: + - v* +env: + EAS_BUILD_ARGS: --non-interactive --profile production --local + +jobs: + build: + runs-on: macos-13 + steps: + - uses: actions/checkout@v2 + + - name: Setup Node + uses: actions/setup-node@v2 + with: + node-version: '20.x' + + - name: Setup Expo + uses: expo/expo-github-action@v7 + with: + token: ${{ secrets.EXPO_TOKEN }} + expo-version: latest + eas-version: latest + + - name: Install dependencies + run: npm ci + + - name: Build app for IOS + run: eas build --output ./app.ipa --platform ios ${{ env.EAS_BUILD_ARGS }} + + - name: Upload to App Store Connect + uses: apple-actions/upload-testflight-build@v1 + with: + app-path: './app.ipa' + issuer-id: ${{ secrets.APPSTORE_ISSUER_ID }} + api-key-id: ${{ secrets.APPSTORE_API_KEY_ID }} + api-private-key: ${{ secrets.APPSTORE_API_PRIVATE_KEY }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..88df481 --- /dev/null +++ b/.gitignore @@ -0,0 +1,37 @@ +# Learn more https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files + +# dependencies +node_modules/ + +# Expo +.expo/ +dist/ +web-build/ + +# Native +*.orig.* +*.jks +*.p8 +*.p12 +*.key +*.mobileprovision + +# Metro +.metro-health-check* + +# debug +npm-debug.* +yarn-debug.* +yarn-error.* + +# macOS +.DS_Store +*.pem + +# local env files +.env*.local + +# typescript +*.tsbuildinfo + +.idea diff --git a/App.tsx b/App.tsx new file mode 100644 index 0000000..5ed929b --- /dev/null +++ b/App.tsx @@ -0,0 +1,86 @@ +import {adaptNavigationTheme, MD3DarkTheme, MD3LightTheme, PaperProvider} from "react-native-paper"; +import {AuthProvider} from "./src/auth"; +import {decode, encode} from "base-64"; +import { + DarkTheme as NavigationDarkTheme, + DefaultTheme as NavigationDefaultTheme, + NavigationContainer +} from "@react-navigation/native"; +import HomeScreen from "./src/screens/home"; +import CustomNavigationBar from "./src/components/navbar"; +import SlotScreen from "./src/screens/feed/slot"; +import {createStackNavigator} from "@react-navigation/stack"; +import AlbumScreen from "./src/screens/media/album"; +import {Item} from "./src/__generated__/media"; +import SlidesScreen from "./src/screens/media/slides"; +import {useColorScheme} from "react-native"; +import merge from 'deepmerge' +import WebScreen from "./src/screens/web"; +import * as Notifications from 'expo-notifications' +import SearchScreen from "./src/screens/feed/search"; + +Notifications.setNotificationHandler(({ + handleNotification: async () => ({ + shouldShowAlert: true, + shouldPlaySound: false, + shouldSetBadge: true + }) +})) + +if (!global.btoa) global.btoa = encode; +if (!global.atob) global.atob = decode; + +export type StackParamList = { + Home: undefined, + Slot: { slot: number, title: string }, + Album: { album: string, title: string }, + Slides: { items: Item[], item: number }, + Web: { source: string, title: string }, + Search: undefined +} + + +const Stack = createStackNavigator() + +const { LightTheme, DarkTheme } = adaptNavigationTheme({ + reactNavigationLight: NavigationDefaultTheme, + reactNavigationDark: NavigationDarkTheme, +}); + +const CombinedDefaultTheme = merge(MD3LightTheme, LightTheme); +const CombinedDarkTheme = merge(MD3DarkTheme, DarkTheme); + +export default function App() { + const colorScheme = useColorScheme() + + return ( + + + + + + ({ + title: route.params.title, + })} /> + ({ + title: route.params.title + })} /> + + ({ + title: route.params.title + })} /> + + + + + + ); +} diff --git a/app.json b/app.json new file mode 100644 index 0000000..d981b49 --- /dev/null +++ b/app.json @@ -0,0 +1,64 @@ +{ + "expo": { + "name": "djo", + "slug": "djo", + "scheme": "djo", + "version": "1.0.0", + "orientation": "portrait", + "icon": "./assets/icon.png", + "userInterfaceStyle": "automatic", + "splash": { + "image": "./assets/splash.png", + "resizeMode": "contain", + "backgroundColor": "#202088" + }, + "assetBundlePatterns": [ + "**/*" + ], + "ios": { + "buildNumber": "1", + "userInterfaceStyle": "automatic", + "supportsTablet": true, + "bundleIdentifier": "nl.djoamersfoort.djo", + "config": { + "usesNonExemptEncryption": false + }, + "infoPlist": { + "UIBackgroundModes": [ + "remote-notification" + ], + "LSApplicationQueriesSchemes": [ + "djo" + ] + } + }, + "android": { + "package": "nl.djoamersfoort.djo", + "adaptiveIcon": { + "foregroundImage": "./assets/adaptive-icon.png", + "backgroundColor": "#202088" + }, + "googleServicesFile": "./google-services.json", + "versionCode": 3 + }, + "web": { + "favicon": "./assets/favicon.png" + }, + "plugins": [ + "expo-secure-store", + [ + "expo-image-picker", + { + "photosPermission": "Allows you to upload media", + "cameraPermission": "Allows you to upload media", + "microphonePermission": "Allows you to upload media" + } + ] + ], + "extra": { + "eas": { + "projectId": "b244a444-1aac-455c-93bf-119317e041fd" + } + } + } +} diff --git a/assets/adaptive-icon.png b/assets/adaptive-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a4106704fb3f13d96fdf2f7fdcb6b7b991544268 GIT binary patch literal 29987 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 literal 0 HcmV?d00001 diff --git a/assets/favicon.png b/assets/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..e75f697b1801871ad8cd9309b05e8ffe8c6b6d01 GIT binary patch literal 1466 zcmV;r1x5OaP)F>1w{Y zBeHf{*q3<2*AtQf4s&-m0MsH$EBv51Nj=s=Appw|nd1Yi(-DKZBN$9bAlWN83A_)0 z$4U=S!XyBuAm(`t#aW=l*tHPgHRE~MrmzGWN*Eidc=$BV2uYe|Rpi@t-me&ht6I?| ze$M(9=%DxSVTwNL7B*O`z`fRE$T)18O{B^J5OHo#W%kD-}gAcJO3n1x6Q{X*TFh-d!yx?Z$G16f%*K?exQ+p ztyb%4*R_Y=)qQBLG-9hc_A|ub$th|8Sk1bi@fFe$DwUpU57nc*-z8<&dM#e3a2hB! z16wLhz7o)!MC8}$7Jv9c-X$w^Xr(M9+`Py)~O3rGmgbvjOzXjGl>h9lp*QEn%coj{`wU^_3U|=B`xxU;X3K1L?JT?0?+@K!|MWVr zmC=;rjX@CoW3kMZA^8ZAy52^R{+-YG!J5q^YP&$t9F`&J8*KzV4t3ZZZJ>~XP7}Bs z<}$a~2r_E?4rlN=(}RBkF~6rBo}Sz7#r{X49&!gODP+TcB*@uq57EII-_>qWEt44B z`5o+tysMLY*Dq^n@4_vzKRu3We5|DI+i%NV=Z|)QAl{di_@%07*qoM6N<$f(5Fv<^TWy literal 0 HcmV?d00001 diff --git a/assets/icon.png b/assets/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..9abf8409c2d8a0f7982f43603547e05b561167b7 GIT binary patch literal 41816 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 z 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