Files
musicland/src/navigation/MainStack.js
T
2025-09-02 11:45:27 +02:00

327 lines
8.1 KiB
JavaScript

import React from "react";
import { createStackNavigator } from "@react-navigation/stack";
import { Palette } from "../styles";
import { Routes } from "./Routes";
import { BottomTabScreen } from "./BottomTab";
import Splash from "../screens/Splash";
import Onboarding from "../screens/Onboarding";
import Login from "../screens/Login";
import ForgotPassword from "../screens/ForgotPassword";
import Notifications from "../screens/Profile/Notifications";
import TermsOfUse from "../screens/TermsOfUse";
import PrivacyPolicy from "../screens/PrivacyPolicy";
import Writing from "../screens/Writing/Writing";
import WritingLyrics from "../screens/Writing/WritingLyrics";
import CreateLyricsWithAi from "../screens/Writing/CreateLyricsWithAi";
import Lyrics from "../screens/Writing/Lyrics";
import FinishedWriting from "../screens/Writing/FinishedWriting";
import Studio from "../screens/Studio/Studio";
import ComposeSong from "../screens/Studio/ComposeSong";
import Compose from "../screens/Studio/Compose";
import CustomizeVoice from "../screens/Studio/CustomizeVoice";
import SongReady from "../screens/Studio/SongReady";
import Regenerate from "../screens/Studio/Regenerate";
import PouchReady from "../screens/Studio/PouchReady";
import PhotoCover from "../screens/Studio/PhotoCover";
import AddPhotoCover from "../screens/Studio/AddPhotoCover";
import FinishCompose from "../screens/Studio/FinishCompose";
import Production from "../screens/Production/Production";
import ProductionOnboarding from "../screens/Production/ProductionOnboarding";
import DownloadSongs from "../screens/Production/DownloadSongs";
import DownloadPrices from "../screens/Production/DownloadPrices";
import SongDownloaded from "../screens/Production/SongDownloaded";
import StreamSong from "../screens/Production/StreamSong";
import SongRelease from "../screens/Production/SongRelease";
import PlaybackExample from "../screens/Production/PlaybackExample";
import PlaybackOnboarding from "../screens/Playback/PlaybackOnboarding";
import Playback from "../screens/Playback/Playback";
import RecordPlayback from "../screens/Playback/RecordPlayback";
import RecordedPlayback from "../screens/Playback/RecordedPlayback";
import ChooseDecor from "../screens/Playback/ChooseDecor";
import CreatingDecor from "../screens/Playback/CreatingDecor";
import VideoFinalize from "../screens/Playback/VideoFinalize";
import AllMyMusic from "../screens/Library/AllMyMusic";
import AllMyPlaylist from "../screens/Library/AllMyPlaylist";
import AllMyLikedMusic from "../screens/Library/AllMyLikedMusic";
import Research from "../screens/Library/Research";
import MusicDetails from "../screens/Library/MusicDetails";
import PlaylistDetails from "../screens/Library/PlaylistDetails";
import SingerProfile from "../screens/Profile/SingerProfile";
import EditProfile from "../screens/Profile/EditProfile";
import Settings from "../screens/Profile/Settings";
import ChangeEmailAddress from "../screens/Profile/ChangeEmailAddress";
import ChangePassword from "../screens/Profile/ChangePassword";
import Language from "../screens/Profile/Language";
import Reels from "../screens/Profile/Reels";
import Follows from "../screens/Profile/Follows";
import NewMusicOptions from "../screens/NewMusicOptions";
import Register from "../screens/Register";
import CreatePassword from "../screens/CreatePassword";
import CreatePseudo from "../screens/CreatePseudo";
const screenOptions = {
headerShown: false,
cardOverlayEnabled: true,
headerStyle: {
backgroundColor: Palette.background,
},
headerTitleStyle: {},
headerTitleAlign: "center",
headerBackTitleVisible: false,
};
const MainStack = createStackNavigator();
const screens = [
{ name: Routes.Splash, component: Splash },
{ name: Routes.Onboarding, component: Onboarding },
{ name: Routes.Login, component: Login, title: "Connexion" },
{
name: Routes.ForgotPassword,
component: ForgotPassword,
title: "Mot de passe oublié",
},
{
name: Routes.BottomTab,
component: BottomTabScreen,
options: { animationEnabled: false },
},
{
name: Routes.TermsOfUse,
component: TermsOfUse,
title: "Conditions d'utilisation",
},
{
name: Routes.PrivacyPolicy,
component: PrivacyPolicy,
title: "Politique de confidentialité",
},
{
name: Routes.Writing,
component: Writing,
},
{
name: Routes.WritingLyrics,
component: WritingLyrics,
},
{
name: Routes.CreateLyricsWithAi,
component: CreateLyricsWithAi,
},
{
name: Routes.Lyrics,
component: Lyrics,
},
{
name: Routes.FinishedWriting,
component: FinishedWriting,
},
{
name: Routes.Studio,
component: Studio,
},
{
name: Routes.ComposeSong,
component: ComposeSong,
},
{
name: Routes.Compose,
component: Compose,
},
{
name: Routes.CustomizeVoice,
component: CustomizeVoice,
},
{
name: Routes.SongReady,
component: SongReady,
},
{
name: Routes.Regenerate,
component: Regenerate,
},
{
name: Routes.PouchReady,
component: PouchReady,
},
{
name: Routes.PhotoCover,
component: PhotoCover,
},
{
name: Routes.AddPhotoCover,
component: AddPhotoCover,
},
{
name: Routes.FinishCompose,
component: FinishCompose,
},
{
name: Routes.ProductionOnboarding,
component: ProductionOnboarding,
},
{
name: Routes.Production,
component: Production,
},
{
name: Routes.DownloadSongs,
component: DownloadSongs,
},
{
name: Routes.DownloadPrices,
component: DownloadPrices,
},
{
name: Routes.SongDownloaded,
component: SongDownloaded,
},
{
name: Routes.StreamSong,
component: StreamSong,
},
{
name: Routes.SongRelease,
component: SongRelease,
},
{
name: Routes.PlaybackExample,
component: PlaybackExample,
},
{
name: Routes.PlaybackOnboarding,
component: PlaybackOnboarding,
},
{
name: Routes.Playback,
component: Playback,
},
{
name: Routes.RecordPlayback,
component: RecordPlayback,
},
{
name: Routes.RecordedPlayback,
component: RecordedPlayback,
},
{
name: Routes.ChooseDecor,
component: ChooseDecor,
},
{
name: Routes.CreatingDecor,
component: CreatingDecor,
},
{
name: Routes.VideoFinalize,
component: VideoFinalize,
},
{
name: Routes.AllMyMusic,
component: AllMyMusic,
},
{
name: Routes.AllMyPlaylist,
component: AllMyPlaylist,
},
{
name: Routes.PlaylistDetails,
component: PlaylistDetails,
},
{
name: Routes.AllMyLikedMusic,
component: AllMyLikedMusic,
},
{
name: Routes.Research,
component: Research,
},
{
name: Routes.MusicDetails,
component: MusicDetails,
},
{
name: Routes.SingerProfile,
component: SingerProfile,
},
{
name: Routes.EditProfile,
component: EditProfile,
},
{
name: Routes.Settings,
component: Settings,
},
{
name: Routes.Follows,
component: Follows,
},
{
name: Routes.FlowSelection,
component: NewMusicOptions,
},
{
name: Routes.ChangeEmailAddress,
component: ChangeEmailAddress,
},
{
name: Routes.ChangePassword,
component: ChangePassword,
},
{
name: Routes.Notifications,
component: Notifications,
},
{
name: Routes.Language,
component: Language,
},
{
name: Routes.Reels,
component: Reels,
},
{
name: Routes.Register,
component: Register,
},
{
name: Routes.CreatePassword,
component: CreatePassword,
},
{
name: Routes.CreatePseudo,
component: CreatePseudo,
},
];
export default function Main() {
return (
<MainStack.Navigator
initialRouteName={Routes.Splash}
screenOptions={[
{
contentStyle: {
backgroundColor: Palette.white,
},
},
screenOptions,
]}
>
{screens.map((screen) => (
<MainStack.Screen
key={screen.name}
name={screen.name}
component={screen.component}
title={screen.title}
options={{ headerShown: false, ...screen.options }}
/>
))}
</MainStack.Navigator>
);
}