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)
|
||||
notifee.init(store)
|
||||
SplashScreen.hide()
|
||||
store.hackCheckIfUpgradeNeeded()
|
||||
Linking.getInitialURL().then((url: string | null) => {
|
||||
if (url) {
|
||||
store.nav.handleLink(url)
|
||||
|
|
|
@ -7,7 +7,7 @@ const segmentClient = createClient({
|
|||
writeKey: '8I6DsgfiSLuoONyaunGoiQM7A6y2ybdI',
|
||||
trackAppLifecycleEvents: false,
|
||||
})
|
||||
export const track = segmentClient.track.bind(segmentClient)
|
||||
export const track = segmentClient?.track?.bind?.(segmentClient)
|
||||
|
||||
export {useAnalytics} from '@segment/analytics-react-native'
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* 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 {createContext, useContext} from 'react'
|
||||
import {DeviceEventEmitter, EmitterSubscription} from 'react-native'
|
||||
|
@ -39,6 +39,23 @@ export class RootStoreModel {
|
|||
profiles = new ProfilesViewModel(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) {
|
||||
this.agent = agent
|
||||
makeAutoObservable(this, {
|
||||
|
|
|
@ -362,6 +362,39 @@ export const MobileShell: React.FC = observer(() => {
|
|||
// 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) {
|
||||
return (
|
||||
<View style={styles.outerContainer}>
|
||||
|
|
|
@ -9,4 +9,4 @@
|
|||
"view/*": ["./src/view/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue