start adventur

This commit is contained in:
2025-10-13 11:45:35 +02:00
parent a83bd3128b
commit 7fdbb2344e
3 changed files with 131 additions and 21 deletions
+59 -15
View File
@@ -1,25 +1,69 @@
import { useCallback, useState } from "react";
import { View } from "react-native";
import { useNavigation } from "@react-navigation/native";
import { background } from "../assets";
import { usersRef } from "../config/firebase";
import FullscreenIntroVideo from "../components/FullscreenIntroVideo";
import GradientButton from "../components/GradientButton";
import Page from "../layouts/Page";
import { Routes } from "../navigation/Routes";
import { useUser } from "../providers/UserDataProvider";
export default function LandingPage() {
const navigation = useNavigation();
const { currentUID } = useUser();
const [isVideoVisible, setIsVideoVisible] = useState(false);
const handleStartVisit = useCallback(() => {
setIsVideoVisible(true);
}, []);
const persistAdventureStarted = useCallback(async () => {
if (!currentUID) {
return;
}
await usersRef.doc(currentUID).set(
{ adventureStarted: true },
{ merge: true }
);
}, [currentUID]);
const handleVideoClose = useCallback(() => {
setIsVideoVisible(false);
persistAdventureStarted()
.catch((error) => {
console.warn("LandingPage: adventureStarted update failed", error);
})
.finally(() => {
navigation.navigate(Routes.Login);
});
}, [navigation, persistAdventureStarted]);
return (
<Page
shareBtn
connect
title="Landing Page"
backgroundImg={background.homeBGWeb}
>
<View
style={{
flex: 1,
justifyContent: "center",
alignItems: "center",
}}
<>
<Page
shareBtn
connect
title="Landing Page"
backgroundImg={background.homeBGWeb}
>
<GradientButton title="Commencer la visite" onPress={() => {}} />
</View>
</Page>
<View
style={{
flex: 1,
justifyContent: "center",
alignItems: "center",
}}
>
<GradientButton
title="Commencer la visite"
onPress={handleStartVisit}
/>
</View>
</Page>
<FullscreenIntroVideo
visible={isVideoVisible}
onClose={handleVideoClose}
/>
</>
);
}