← back to Nineoh Guide
mobile forward: easter eggs — tap UNOFFICIAL badge 5x for hidden 90210 card, long-press title for ZIP-code fun fact
c7a00538b948db6ec4386464b4115d5192824a33 · 2026-07-25 11:41:56 -0700 · Steve
Files touched
Diff
commit c7a00538b948db6ec4386464b4115d5192824a33
Author: Steve <steve@designerwallcoverings.com>
Date: Sat Jul 25 11:41:56 2026 -0700
mobile forward: easter eggs — tap UNOFFICIAL badge 5x for hidden 90210 card, long-press title for ZIP-code fun fact
---
apps/mobile/App.tsx | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 59 insertions(+), 2 deletions(-)
diff --git a/apps/mobile/App.tsx b/apps/mobile/App.tsx
index d8194c3..54b134d 100644
--- a/apps/mobile/App.tsx
+++ b/apps/mobile/App.tsx
@@ -6,6 +6,7 @@ import {
StyleSheet,
ActivityIndicator,
Pressable,
+ Alert,
} from "react-native";
import { StatusBar } from "expo-status-bar";
import Constants from "expo-constants";
@@ -46,6 +47,26 @@ export default function App() {
episode: number;
} | null>(null);
const [revealed, setRevealed] = useState<Set<string>>(new Set());
+ const [eggTaps, setEggTaps] = useState(0);
+ const [egg, setEgg] = useState(false);
+
+ // Easter egg #1: tap the UNOFFICIAL badge 5× to unlock the hidden 90210 card.
+ const tapBadge = useCallback(() => {
+ setEggTaps((n) => {
+ if (n + 1 >= 5) {
+ setEgg(true);
+ return 0;
+ }
+ return n + 1;
+ });
+ }, []);
+ // Easter egg #2: long-press the title for a ZIP-code fun fact.
+ const titleFact = useCallback(() => {
+ Alert.alert(
+ "📟 90210",
+ "It's a real ZIP code — Beverly Hills, California — and one of the most famous postal codes in the world."
+ );
+ }, []);
// Native feature #1: persisted watchlist (AsyncStorage) — survives app restarts.
useEffect(() => {
@@ -109,10 +130,25 @@ export default function App() {
<View style={styles.root}>
<StatusBar style="auto" />
<View style={styles.header}>
- <Text style={styles.title}>{APP.displayName}</Text>
- <Text style={styles.badge}>UNOFFICIAL</Text>
+ <Pressable onLongPress={titleFact} delayLongPress={450}>
+ <Text style={styles.title}>{APP.displayName}</Text>
+ </Pressable>
+ <Pressable onPress={tapBadge} hitSlop={8}>
+ <Text style={styles.badge}>UNOFFICIAL</Text>
+ </Pressable>
</View>
+ {egg ? (
+ <Pressable style={styles.egg} onPress={() => setEgg(false)}>
+ <Text style={styles.eggEmoji}>📟✨</Text>
+ <Text style={styles.eggTitle}>You found the 90210 easter egg!</Text>
+ <Text style={styles.eggBody}>
+ "We're not in Kansas anymore." Thanks for tapping around — you're a real
+ fan. Tap anywhere to close.
+ </Text>
+ </Pressable>
+ ) : null}
+
<View style={styles.toolbar}>
<Pressable
onPress={() => setSavedOnly((v) => !v)}
@@ -252,4 +288,25 @@ const styles = StyleSheet.create({
markWatched: { fontSize: 11, color: "#888", marginTop: 6 },
chipGuard: { backgroundColor: "#f3e9e9", borderColor: "#d8b4b4" },
chipGuardText: { fontSize: 13, color: "#8a1c1c" },
+ egg: {
+ position: "absolute",
+ top: 0,
+ left: 0,
+ right: 0,
+ bottom: 0,
+ zIndex: 50,
+ backgroundColor: "rgba(43,30,58,0.96)",
+ alignItems: "center",
+ justifyContent: "center",
+ padding: 36,
+ },
+ eggEmoji: { fontSize: 60, marginBottom: 12 },
+ eggTitle: {
+ color: "#ffd27a",
+ fontSize: 22,
+ fontWeight: "700",
+ textAlign: "center",
+ marginBottom: 10,
+ },
+ eggBody: { color: "#fff6ec", fontSize: 14, textAlign: "center", lineHeight: 21 },
});
← 8fd5a56 beverly hills photos: 8 free-licensed CC/PD city photos (Rod
·
back to Nineoh Guide
·
deploy prep: db/setup-prod.sh one-shot prod populator, db/re 7fd16eb →