feat: add onboarding
This commit is contained in:
@ -46,6 +46,7 @@
|
|||||||
"loading": "Laden...",
|
"loading": "Laden...",
|
||||||
"more": "Mehr",
|
"more": "Mehr",
|
||||||
"error": "Fehler",
|
"error": "Fehler",
|
||||||
|
"next": "Weiter",
|
||||||
"sidebar": {
|
"sidebar": {
|
||||||
"about": {
|
"about": {
|
||||||
"header": "Über",
|
"header": "Über",
|
||||||
@ -122,6 +123,12 @@
|
|||||||
"user": {
|
"user": {
|
||||||
"header": "Benutzer",
|
"header": "Benutzer",
|
||||||
"login": "Login"
|
"login": "Login"
|
||||||
|
},
|
||||||
|
"onboarding": {
|
||||||
|
"welcome": "Willkommen!",
|
||||||
|
"skip": "Onboarding überspringen",
|
||||||
|
"choose-lang": "Wählen Sie Ihre Sprache",
|
||||||
|
"first-vehicle": "Erstellen wir Ihr erstes Fahrzeug."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,6 +6,7 @@
|
|||||||
"loading": "Loading...",
|
"loading": "Loading...",
|
||||||
"more": "More",
|
"more": "More",
|
||||||
"error": "Error",
|
"error": "Error",
|
||||||
|
"next": "Next",
|
||||||
"saved": {
|
"saved": {
|
||||||
"home": "Home",
|
"home": "Home",
|
||||||
"school": "School",
|
"school": "School",
|
||||||
@ -122,6 +123,12 @@
|
|||||||
"user": {
|
"user": {
|
||||||
"header": "User",
|
"header": "User",
|
||||||
"login": "Login"
|
"login": "Login"
|
||||||
|
},
|
||||||
|
"onboarding": {
|
||||||
|
"welcome": "Welcome!",
|
||||||
|
"skip": "Skip Onboarding",
|
||||||
|
"choose-lang": "Choose your language",
|
||||||
|
"first-vehicle": "Let's create your first vehicle."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -33,6 +33,8 @@
|
|||||||
import DeveloperSidebar from "./sidebar/settings/DeveloperSidebar.svelte";
|
import DeveloperSidebar from "./sidebar/settings/DeveloperSidebar.svelte";
|
||||||
import { m } from "$lang/messages";
|
import { m } from "$lang/messages";
|
||||||
import LanguageSidebar from "./sidebar/settings/LanguageSidebar.svelte";
|
import LanguageSidebar from "./sidebar/settings/LanguageSidebar.svelte";
|
||||||
|
import OnboardingSidebar from "./sidebar/onboarding/OnboardingSidebar.svelte";
|
||||||
|
import OnboardingVehiclesSidebar from "./sidebar/onboarding/OnboardingVehiclesSidebar.svelte";
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
const views: Record<string, Component<any>> = {
|
const views: Record<string, Component<any>> = {
|
||||||
@ -47,6 +49,8 @@
|
|||||||
"offline-maps": OfflineMapsSidebar,
|
"offline-maps": OfflineMapsSidebar,
|
||||||
"dev-options": DeveloperSidebar,
|
"dev-options": DeveloperSidebar,
|
||||||
language: LanguageSidebar,
|
language: LanguageSidebar,
|
||||||
|
onboarding: OnboardingSidebar,
|
||||||
|
"onboarding-vehicles": OnboardingVehiclesSidebar,
|
||||||
};
|
};
|
||||||
|
|
||||||
let isDragging = false;
|
let isDragging = false;
|
||||||
|
|||||||
@ -0,0 +1,40 @@
|
|||||||
|
<script>
|
||||||
|
import { m } from "$lang/messages";
|
||||||
|
import { getLocale, locales, setLocale } from "$lang/runtime";
|
||||||
|
import { LanguagesIcon } from "@lucide/svelte";
|
||||||
|
import SettingsButton from "../settings/SettingsButton.svelte";
|
||||||
|
import { view } from "../../view.svelte";
|
||||||
|
import Button from "$lib/components/ui/button/button.svelte";
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<h1 style="font-size: 2em; font-weight: bold;">{m["sidebar.onboarding.welcome"]()}</h1>
|
||||||
|
<h2>{m["sidebar.onboarding.choose-lang"]()}</h2>
|
||||||
|
|
||||||
|
<div id="languages">
|
||||||
|
{#each locales as locale, _index (locale)}
|
||||||
|
<SettingsButton
|
||||||
|
text={m.language({}, { locale })}
|
||||||
|
icon={LanguagesIcon}
|
||||||
|
onclick={() => {
|
||||||
|
if(locale != getLocale()) {
|
||||||
|
setLocale(locale);
|
||||||
|
}
|
||||||
|
view.switch("onboarding-vehicles")
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<Button variant="link" onclick={() => {
|
||||||
|
view.switch("main");
|
||||||
|
view.history = [];
|
||||||
|
}}>{m["sidebar.onboarding.skip"]()}</Button>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
#languages {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 1rem;
|
||||||
|
margin-top: 1rem;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
<script>
|
||||||
|
import { m } from "$lang/messages";
|
||||||
|
import { PlusCircleIcon } from "@lucide/svelte";
|
||||||
|
import { view } from "../../view.svelte";
|
||||||
|
import AddVehicleDrawer from "../../AddVehicleDrawer.svelte";
|
||||||
|
import Button from "$lib/components/ui/button/button.svelte";
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<h1 style="font-size: 1.3em; font-weight: bold; margin-bottom: 1rem;">{m["sidebar.onboarding.first-vehicle"]()}</h1>
|
||||||
|
|
||||||
|
<AddVehicleDrawer>
|
||||||
|
<Button variant="secondary" class="w-full p-5">
|
||||||
|
<PlusCircleIcon />
|
||||||
|
{m["vehicles.selector.add"]()}
|
||||||
|
</Button>
|
||||||
|
</AddVehicleDrawer>
|
||||||
|
|
||||||
|
<Button style="margin-top: 1rem; width: 100%;" onclick={() => {
|
||||||
|
view.switch("offline-maps");
|
||||||
|
view.history = [{ type: "main" }];
|
||||||
|
}}>{m.next()}</Button>
|
||||||
@ -1,5 +1,5 @@
|
|||||||
<script>
|
<script>
|
||||||
import { MapIcon, SpeechIcon, ToggleLeftIcon } from "@lucide/svelte";
|
import { HandIcon, MapIcon, SpeechIcon, ToggleLeftIcon } from "@lucide/svelte";
|
||||||
import SidebarHeader from "../SidebarHeader.svelte";
|
import SidebarHeader from "../SidebarHeader.svelte";
|
||||||
import SettingsButton from "./SettingsButton.svelte";
|
import SettingsButton from "./SettingsButton.svelte";
|
||||||
import say from "$lib/services/navigation/TTS";
|
import say from "$lib/services/navigation/TTS";
|
||||||
@ -37,6 +37,15 @@
|
|||||||
/>
|
/>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h2>Open</h2>
|
||||||
|
<SettingsButton
|
||||||
|
icon={HandIcon}
|
||||||
|
text="Start onboarding"
|
||||||
|
view="onboarding"
|
||||||
|
/>
|
||||||
|
</section>
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
<h2>Other</h2>
|
<h2>Other</h2>
|
||||||
<SettingsButton
|
<SettingsButton
|
||||||
|
|||||||
Reference in New Issue
Block a user