Add a temporary lexicon refactor guard (#235)
* Add a temporary lexicon refactor guard * Fix test * Fix tsconfig formattingzio/stable
parent
fcd8c7b037
commit
dc7b5a34e7
|
@ -28,6 +28,7 @@ const App = observer(() => {
|
||||||
analytics.init(store)
|
analytics.init(store)
|
||||||
notifee.init(store)
|
notifee.init(store)
|
||||||
SplashScreen.hide()
|
SplashScreen.hide()
|
||||||
|
store.hackCheckIfUpgradeNeeded()
|
||||||
Linking.getInitialURL().then((url: string | null) => {
|
Linking.getInitialURL().then((url: string | null) => {
|
||||||
if (url) {
|
if (url) {
|
||||||
store.nav.handleLink(url)
|
store.nav.handleLink(url)
|
||||||
|
|
|
@ -7,7 +7,7 @@ const segmentClient = createClient({
|
||||||
writeKey: '8I6DsgfiSLuoONyaunGoiQM7A6y2ybdI',
|
writeKey: '8I6DsgfiSLuoONyaunGoiQM7A6y2ybdI',
|
||||||
trackAppLifecycleEvents: false,
|
trackAppLifecycleEvents: false,
|
||||||
})
|
})
|
||||||
export const track = segmentClient.track.bind(segmentClient)
|
export const track = segmentClient?.track?.bind?.(segmentClient)
|
||||||
|
|
||||||
export {useAnalytics} from '@segment/analytics-react-native'
|
export {useAnalytics} from '@segment/analytics-react-native'
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* The root store is the base of all modeled state.
|
* The root store is the base of all modeled state.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import {makeAutoObservable} from 'mobx'
|
import {makeAutoObservable, runInAction} from 'mobx'
|
||||||
import {AtpAgent} from '@atproto/api'
|
import {AtpAgent} from '@atproto/api'
|
||||||
import {createContext, useContext} from 'react'
|
import {createContext, useContext} from 'react'
|
||||||
import {DeviceEventEmitter, EmitterSubscription} from 'react-native'
|
import {DeviceEventEmitter, EmitterSubscription} from 'react-native'
|
||||||
|
@ -39,6 +39,23 @@ export class RootStoreModel {
|
||||||
profiles = new ProfilesViewModel(this)
|
profiles = new ProfilesViewModel(this)
|
||||||
linkMetas = new LinkMetasViewModel(this)
|
linkMetas = new LinkMetasViewModel(this)
|
||||||
|
|
||||||
|
// HACK
|
||||||
|
// this flag is to track the lexicon breaking refactor
|
||||||
|
// it should be removed once we get that done
|
||||||
|
// -prf
|
||||||
|
hackUpgradeNeeded = false
|
||||||
|
async hackCheckIfUpgradeNeeded() {
|
||||||
|
try {
|
||||||
|
const res = await fetch('https://bsky.social/xrpc/app.bsky.feed.getLikes')
|
||||||
|
await res.text()
|
||||||
|
runInAction(() => {
|
||||||
|
this.hackUpgradeNeeded = res.status !== 501
|
||||||
|
})
|
||||||
|
} catch (e) {
|
||||||
|
this.log.error('Failed to hackCheckIfUpgradeNeeded', {e})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
constructor(agent: AtpAgent) {
|
constructor(agent: AtpAgent) {
|
||||||
this.agent = agent
|
this.agent = agent
|
||||||
makeAutoObservable(this, {
|
makeAutoObservable(this, {
|
||||||
|
|
|
@ -362,6 +362,39 @@ export const MobileShell: React.FC = observer(() => {
|
||||||
// transform: [{scale: newTabInterp}],
|
// transform: [{scale: newTabInterp}],
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
if (store.hackUpgradeNeeded) {
|
||||||
|
return (
|
||||||
|
<View style={styles.outerContainer}>
|
||||||
|
<View style={[s.flexCol, s.p20, s.h100pct]}>
|
||||||
|
<View style={s.flex1} />
|
||||||
|
<View>
|
||||||
|
<Text type="title-2xl" style={s.pb10}>
|
||||||
|
Update required
|
||||||
|
</Text>
|
||||||
|
<Text style={[s.pb20, s.bold]}>
|
||||||
|
Please update your app to the latest version. If no update is
|
||||||
|
available yet, please check the App Store in a day or so.
|
||||||
|
</Text>
|
||||||
|
<Text type="title" style={s.pb10}>
|
||||||
|
What's happening?
|
||||||
|
</Text>
|
||||||
|
<Text style={s.pb10}>
|
||||||
|
We're in the final stages of the AT Protocol's v1 development. To
|
||||||
|
make sure everything works as well as possible, we're making final
|
||||||
|
breaking changes to the APIs.
|
||||||
|
</Text>
|
||||||
|
<Text>
|
||||||
|
If we didn't botch this process, a new version of the app should
|
||||||
|
be available now.
|
||||||
|
</Text>
|
||||||
|
</View>
|
||||||
|
<View style={s.flex1} />
|
||||||
|
<View style={s.footerSpacer} />
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
if (!store.session.hasSession) {
|
if (!store.session.hasSession) {
|
||||||
return (
|
return (
|
||||||
<View style={styles.outerContainer}>
|
<View style={styles.outerContainer}>
|
||||||
|
|
|
@ -9,4 +9,4 @@
|
||||||
"view/*": ["./src/view/*"]
|
"view/*": ["./src/view/*"]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue