Skip to content

Commit

Permalink
Merge branch 'develop' into po/fix-drizzle-orm-patch-2
Browse files Browse the repository at this point in the history
  • Loading branch information
patosullivan committed Jan 24, 2025
2 parents 1411c2a + 17f42ff commit ca7aa24
Show file tree
Hide file tree
Showing 216 changed files with 7,993 additions and 2,792 deletions.
5 changes: 0 additions & 5 deletions .github/pull_request_template.md

This file was deleted.

8 changes: 4 additions & 4 deletions .github/workflows/deploy-canary.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:
run: pnpm build:all
- working-directory: ./apps/tlon-web
run: pnpm build
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: "ui-dist"
path: apps/tlon-web/dist
Expand All @@ -57,7 +57,7 @@ jobs:
run: pnpm build:all
- working-directory: ./apps/tlon-web-new
run: pnpm build:alpha
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: "ui-dist-new"
path: apps/tlon-web-new/dist
Expand All @@ -70,7 +70,7 @@ jobs:
with:
ref: ${{ env.tag }}
ssh-key: ${{ secrets.DEPLOY_KEY }}
- uses: actions/download-artifact@v3
- uses: actions/download-artifact@v4
with:
name: "ui-dist"
path: apps/tlon-web/dist
Expand Down Expand Up @@ -104,7 +104,7 @@ jobs:
with:
ref: ${{ env.tag }}
ssh-key: ${{ secrets.DEPLOY_KEY }}
- uses: actions/download-artifact@v3
- uses: actions/download-artifact@v4
with:
name: "ui-dist-new"
path: apps/tlon-web-new/dist
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:
run: pnpm build:all
- working-directory: ./apps/tlon-web
run: pnpm build
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: "ui-dist"
path: apps/tlon-web/dist
Expand All @@ -61,7 +61,7 @@ jobs:
run: pnpm build:all
- working-directory: ./apps/tlon-web-new
run: pnpm build:alpha
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: "ui-dist-new"
path: apps/tlon-web-new/dist
Expand All @@ -74,7 +74,7 @@ jobs:
with:
ref: ${{ env.tag }}
ssh-key: ${{ secrets.DEPLOY_KEY }}
- uses: actions/download-artifact@v3
- uses: actions/download-artifact@v4
with:
name: "ui-dist"
path: apps/tlon-web/dist
Expand Down Expand Up @@ -108,7 +108,7 @@ jobs:
with:
ref: ${{ env.tag }}
ssh-key: ${{ secrets.DEPLOY_KEY }}
- uses: actions/download-artifact@v3
- uses: actions/download-artifact@v4
with:
name: "ui-dist-new"
path: apps/tlon-web-new/dist
Expand Down
3 changes: 3 additions & 0 deletions apps/tlon-mobile/.env.sample
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,6 @@ IGNORE_COSMOS=false
TLON_EMPLOYEE_GROUP=
BRANCH_KEY=
BRANCH_DOMAIN=
# Invite service
INVITE_SERVICE_ENDPOINT=
INVITE_SERVICE_IS_DEV=
2 changes: 1 addition & 1 deletion apps/tlon-mobile/ios/Landscape/Supporting/Expo.plist
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<key>EXUpdatesLaunchWaitMs</key>
<integer>0</integer>
<key>EXUpdatesRuntimeVersion</key>
<string>4.0.1</string>
<string>4.0.2</string>
<key>EXUpdatesURL</key>
<string>https://u.expo.dev/617bb643-5bf6-4c40-8af6-c6e9dd7e3bd0</string>
</dict>
Expand Down
6 changes: 6 additions & 0 deletions apps/tlon-mobile/ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1160,6 +1160,8 @@ PODS:
- React-Core
- react-native-context-menu-view (1.15.0):
- React
- react-native-cookies (6.2.1):
- React-Core
- react-native-get-random-values (1.11.0):
- React-Core
- react-native-netinfo (11.1.0):
Expand Down Expand Up @@ -1468,6 +1470,7 @@ DEPENDENCIES:
- React-Mapbuffer (from `../../../node_modules/react-native/ReactCommon`)
- react-native-branch (from `../../../node_modules/react-native-branch`)
- react-native-context-menu-view (from `../../../node_modules/react-native-context-menu-view`)
- "react-native-cookies (from `../../../node_modules/@react-native-cookies/cookies`)"
- react-native-get-random-values (from `../../../node_modules/react-native-get-random-values`)
- "react-native-netinfo (from `../../../node_modules/@react-native-community/netinfo`)"
- react-native-safe-area-context (from `../../../node_modules/react-native-safe-area-context`)
Expand Down Expand Up @@ -1674,6 +1677,8 @@ EXTERNAL SOURCES:
:path: "../../../node_modules/react-native-branch"
react-native-context-menu-view:
:path: "../../../node_modules/react-native-context-menu-view"
react-native-cookies:
:path: "../../../node_modules/@react-native-cookies/cookies"
react-native-get-random-values:
:path: "../../../node_modules/react-native-get-random-values"
react-native-netinfo:
Expand Down Expand Up @@ -1843,6 +1848,7 @@ SPEC CHECKSUMS:
React-Mapbuffer: 94db5977cd64330f9e715c19026c9a267d8358a5
react-native-branch: 021b9c261f732d0950e9a304284779d48bf81109
react-native-context-menu-view: dcec18eb8882e20596dbb75802e7d19cb87dac02
react-native-cookies: f54fcded06bb0cda05c11d86788020b43528a26c
react-native-get-random-values: 21325b2244dfa6b58878f51f9aa42821e7ba3d06
react-native-netinfo: 3aa5637c18834966e0c932de8ae1ae56fea20a97
react-native-safe-area-context: b97eb6f9e3b7f437806c2ce5983f479f8eb5de4b
Expand Down
2 changes: 2 additions & 0 deletions apps/tlon-mobile/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
"@react-native-async-storage/async-storage": "1.21.0",
"@react-native-clipboard/clipboard": "^1.14.0",
"@react-native-community/netinfo": "11.1.0",
"@react-native-cookies/cookies": "^6.2.1",
"@react-native-firebase/app": "^19.2.2",
"@react-native-firebase/crashlytics": "^19.2.2",
"@react-native-firebase/perf": "19.2.2",
Expand Down Expand Up @@ -91,6 +92,7 @@
"expo-task-manager": "~11.7.2",
"expo-updates": "~0.24.10",
"immer": "^9.0.12",
"libphonenumber-js": "^1.11.18",
"lodash": "^4.17.21",
"posthog-react-native": "^2.7.1",
"react": "^18.2.0",
Expand Down
28 changes: 22 additions & 6 deletions apps/tlon-mobile/src/App.main.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import { useAsyncStorageDevTools } from '@dev-plugins/async-storage';
import { useReactNavigationDevTools } from '@dev-plugins/react-navigation';
import { useReactQueryDevTools } from '@dev-plugins/react-query';
import NetInfo from '@react-native-community/netinfo';
import crashlytics from '@react-native-firebase/crashlytics';
import {
DarkTheme,
DefaultTheme,
Expand All @@ -15,12 +14,11 @@ import { BranchProvider } from '@tloncorp/app/contexts/branch';
import { ShipProvider, useShip } from '@tloncorp/app/contexts/ship';
import { useIsDarkMode } from '@tloncorp/app/hooks/useIsDarkMode';
import { useMigrations } from '@tloncorp/app/lib/nativeDb';
import { PlatformState } from '@tloncorp/app/lib/platformHelpers';
import { Provider as TamaguiProvider } from '@tloncorp/app/provider';
import { FeatureFlagConnectedInstrumentationProvider } from '@tloncorp/app/utils/perf';
import { posthogAsync } from '@tloncorp/app/utils/posthog';
import { QueryClientProvider, queryClient } from '@tloncorp/shared/api';
import { finishingSelfHostedLogin as selfHostedLoginStatus } from '@tloncorp/shared/db';
import * as db from '@tloncorp/shared/db';
import {
LoadingSpinner,
PortalProvider,
Expand All @@ -46,7 +44,11 @@ const App = () => {
const { isLoading, isAuthenticated } = useShip();
const [connected, setConnected] = useState(true);
const signupContext = useSignupContext();
const finishingSelfHostedLogin = selfHostedLoginStatus.useValue();

const finishingSelfHostedLogin = db.finishingSelfHostedLogin.useValue();
const haveHostedLogin = db.haveHostedLogin.useValue();
const hostedAccountInitialized = db.hostedAccountIsInitialized.useValue();
const hostedNodeRunning = db.hostedNodeIsRunning.useValue();

const currentlyOnboarding = useMemo(() => {
return signupContext.email || signupContext.phoneNumber;
Expand All @@ -67,10 +69,24 @@ const App = () => {
}, []);

const showAuthenticatedApp = useMemo(() => {
const blockedOnSignup = currentlyOnboarding;
const blockedOnLoginHosted =
haveHostedLogin && (!hostedAccountInitialized || !hostedNodeRunning);
const blockedOnLoginSelfHosted = finishingSelfHostedLogin;
return (
isAuthenticated && !(currentlyOnboarding || finishingSelfHostedLogin)
isAuthenticated &&
!blockedOnSignup &&
!blockedOnLoginHosted &&
!blockedOnLoginSelfHosted
);
}, [isAuthenticated, currentlyOnboarding, finishingSelfHostedLogin]);
}, [
currentlyOnboarding,
haveHostedLogin,
hostedAccountInitialized,
hostedNodeRunning,
finishingSelfHostedLogin,
isAuthenticated,
]);

return (
<View height={'100%'} width={'100%'} backgroundColor="$background">
Expand Down
21 changes: 17 additions & 4 deletions apps/tlon-mobile/src/OnboardingStack.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import { createNativeStackNavigator } from '@react-navigation/native-stack';
import { useScreenOptions } from '@tloncorp/app/hooks/useScreenOptions';

import { useReviveSavedOnboarding } from './hooks/useReviveSavedOnboarding';
import { CheckOTPScreen } from './screens/Onboarding/CheckOTPScreen';
import { CheckVerifyScreen } from './screens/Onboarding/CheckVerifyScreen';
import { EULAScreen } from './screens/Onboarding/EULAScreen';
import { GettingNodeReadyScreen } from './screens/Onboarding/GettingNodeReadyScreen';
import { InitialStateCheckScreen } from './screens/Onboarding/InitialStateCheckScreen';
import { InventoryCheckScreen } from './screens/Onboarding/InventoryCheckScreen';
import { JoinWaitListScreen } from './screens/Onboarding/JoinWaitListScreen';
import { PasteInviteLinkScreen } from './screens/Onboarding/PasteInviteLinkScreen';
Expand All @@ -17,6 +18,7 @@ import { ShipLoginScreen } from './screens/Onboarding/ShipLoginScreen';
import { SignupScreen } from './screens/Onboarding/SignupScreen';
import { TlonLoginScreen } from './screens/Onboarding/TlonLogin';
import { TlonLoginLegacy } from './screens/Onboarding/TlonLoginLegacy';
import { UnderMaintenanceScreen } from './screens/Onboarding/UnderMaintenance';
import { WelcomeScreen } from './screens/Onboarding/WelcomeScreen';
import type { OnboardingStackParamList } from './types';

Expand All @@ -31,16 +33,19 @@ export function OnboardingStack() {
headerShown: false,
};

useReviveSavedOnboarding();

return (
<OnboardingStackNavigator.Navigator
initialRouteName="Welcome"
initialRouteName="InitialStateCheck"
screenOptions={onboardingScreenOptions}
>
<OnboardingStackNavigator.Screen
name="InitialStateCheck"
component={InitialStateCheckScreen}
/>
<OnboardingStackNavigator.Screen
name="Welcome"
component={WelcomeScreen}
options={{ animation: 'none', gestureEnabled: false }}
/>
<OnboardingStackNavigator.Screen name="Signup" component={SignupScreen} />
<OnboardingStackNavigator.Screen
Expand Down Expand Up @@ -97,6 +102,14 @@ export function OnboardingStack() {
name="ResetPassword"
component={ResetPasswordScreen}
/>
<OnboardingStackNavigator.Screen
name="GettingNodeReadyScreen"
component={GettingNodeReadyScreen}
/>
<OnboardingStackNavigator.Screen
name="UnderMaintenance"
component={UnderMaintenanceScreen}
/>
</OnboardingStackNavigator.Navigator>
);
}
11 changes: 10 additions & 1 deletion apps/tlon-mobile/src/components/AuthenticatedApp.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,19 @@ import { useUpdatePresentedNotifications } from '@tloncorp/app/lib/notifications
import { RootStack } from '@tloncorp/app/navigation/RootStack';
import { AppDataProvider } from '@tloncorp/app/provider/AppDataProvider';
import { sync } from '@tloncorp/shared';
import * as db from '@tloncorp/shared/db';
import { PortalProvider, ZStack } from '@tloncorp/ui';
import { useCallback, useEffect, useState } from 'react';
import { AppStateStatus } from 'react-native';

import { useCheckAppUpdated } from '../hooks/analytics';
import { useCheckNodeStopped } from '../hooks/useCheckNodeStopped';
import { useDeepLinkListener } from '../hooks/useDeepLinkListener';
import useNotificationListener from '../hooks/useNotificationListener';

function AuthenticatedApp() {
const telemetry = useTelemetry();
const checkNodeStopped = useCheckNodeStopped();
useNotificationListener();
useUpdatePresentedNotifications();
useDeepLinkListener();
Expand All @@ -34,13 +37,19 @@ function AuthenticatedApp() {
sync.syncUnreads({ priority: sync.SyncPriority.High });
sync.syncPinnedItems({ priority: sync.SyncPriority.High });
telemetry.captureAppActive();
checkNodeStopped();
}
},
[telemetry]
[checkNodeStopped, telemetry]
);

useAppStatusChange(handleAppStatusChange);

useEffect(() => {
// reset this anytime we get back into the authenticated app
db.nodeStoppedWhileLoggedIn.setValue(false);
}, []);

return (
<ZStack flex={1}>
<RootStack />
Expand Down
10 changes: 7 additions & 3 deletions apps/tlon-mobile/src/components/OnboardingInputs.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { useIsDarkMode } from '@tloncorp/app/hooks/useIsDarkMode';
import { Field, TextInput, XStack, useTheme } from '@tloncorp/ui';
import { isValidPhoneNumber } from 'libphonenumber-js';
import {
createRef,
useCallback,
Expand Down Expand Up @@ -90,9 +91,11 @@ export function OTPInput({
onChangeText={(text) => handleChangeText(i, text)}
value={value.length > i ? value[i] : ''}
keyboardType="numeric"
paddingHorizontal="$xl"
paddingVertical="$xl"
width="$4xl"
frameStyle={{
width: '$4xl',
paddingLeft: 0,
paddingRight: 0,
}}
textContentType="oneTimeCode"
autoComplete="one-time-code"
/>
Expand Down Expand Up @@ -129,6 +132,7 @@ export function PhoneNumberInput({
control={form.control}
rules={{
required: 'Please enter a valid phone number.',
validate: (value) => isValidPhoneNumber(value),
}}
render={({ field: { onChange } }) => (
<Field
Expand Down
Loading

0 comments on commit ca7aa24

Please sign in to comment.