🎨 Make date selector modular

This commit is contained in:
2023-06-18 18:18:26 +02:00
parent 3a8ce74f53
commit 211d1d2b2f
2 changed files with 28 additions and 8 deletions

View File

@ -4,7 +4,16 @@ import TitleBar from "@/components/titlebar-element.vue";
import BottomNavbar from "@/components/bottom-navbar.vue"; import BottomNavbar from "@/components/bottom-navbar.vue";
import DateSelector from "@/components/date-selector.vue"; import DateSelector from "@/components/date-selector.vue";
import LoadingElement from "@/components/loading-element.vue"; import LoadingElement from "@/components/loading-element.vue";
import { loading, loadingProgress, loadingFailed, theme } from "@/store"; import {
loading,
loadingProgress,
loadingFailed,
theme,
selectedDate,
selectedDay,
changeDay,
changeDate,
} from "@/store";
import { computed, ref } from "vue"; import { computed, ref } from "vue";
const autoThemes = { true: "dark", false: "light" }; const autoThemes = { true: "dark", false: "light" };
@ -33,7 +42,13 @@ const isDataView = computed(() => route.meta.dataView || false);
/> />
<div class="center"> <div class="center">
<main> <main>
<DateSelector v-show="isDataView" /> <DateSelector
:selectedDate="selectedDate"
:selectedDay="selectedDay"
@changeDay="(inc) => (changeDay += inc)"
@changeDate="(date) => (changeDate = date)"
v-show="isDataView"
/>
<div class="wrapper"> <div class="wrapper">
<RouterView /> <RouterView />
</div> </div>

View File

@ -1,5 +1,6 @@
<script setup> <script setup>
import { selectedDate, selectedDay, changeDay, changeDate } from "@/store"; defineProps(["selectedDate", "selectedDay"]);
defineEmits(["changeDay", "changeDate"]);
import { ArrowLeftIcon, ArrowRightIcon } from "lucide-vue-next"; import { ArrowLeftIcon, ArrowRightIcon } from "lucide-vue-next";
import dayjs from "dayjs"; import dayjs from "dayjs";
import { getDateSkippingWeekend } from "@/util"; import { getDateSkippingWeekend } from "@/util";
@ -17,15 +18,19 @@ const dayNames = [
<template> <template>
<div class="selector"> <div class="selector">
<ArrowLeftIcon @click="changeDay--" /> <ArrowLeftIcon @click="$emit('changeDay', -1)" />
<span <span
class="day" class="day"
@click="changeDate = getDateSkippingWeekend(dayjs().toDate(), true)" @click="
$emit('changeDate', getDateSkippingWeekend(dayjs().toDate(), true))
"
> >
{{ $t(dayNames[selectedDay + 1]) }}, {{ $t(dayNames[selectedDay + 1])
{{ dayjs(selectedDate).format("DD.MM.YYYY") }} }}{{
selectedDate ? ", " + dayjs(selectedDate).format("DD.MM.YYYY") : ""
}}
</span> </span>
<ArrowRightIcon @click="changeDay++" /> <ArrowRightIcon @click="$emit('changeDay', +1)" />
</div> </div>
</template> </template>