115 refactoring dynamic page

This commit is contained in:
survellow
2023-12-26 20:28:57 +01:00
parent 0b695e6a78
commit dcb6a90fb6
6 changed files with 62 additions and 56 deletions

View File

@@ -7,6 +7,7 @@ import router from "../router";
import tokenStore from "../store/tokenStore";
import { useToast } from "primevue/usetoast";
import { useI18n } from "vue-i18n";
import DynamicPage from "./DynamicPage.vue";
const { t } = useI18n({ useScope: "global" });
const toast = useToast();
@@ -14,10 +15,14 @@ const toast = useToast();
const token: Ref<string> = ref("");
const modules: Ref<Map<string, Module>> = ref(moduleStore().modules);
function extractToken(token: string): string {
const tokenRegex = /^[a-z0-9]{15}$/;
const tokenUriRegex = /[?&]token=([a-z0-9]{15})(?:&|$)/;
const tokenRegex = /^[a-z0-9]{15}$/;
const tokenUriRegex = /[?&]token=([a-z0-9]{15})(?:&|$)/;
const isToken = (token: string): boolean => {
return tokenRegex.test(token) || tokenUriRegex.test(token);
};
function extractToken(token: string): string {
if (tokenRegex.test(token)) {
return token;
}
@@ -66,43 +71,28 @@ function loadCalendar(): void {
</script>
<template>
<div class="flex flex-column align-items-center transition-all transition-duration-500 transition-ease-in-out md:mt-8 mb-7">
<div class="flex align-items-center justify-content-center gap-2 mx-2">
<h3 class="text-4xl">
{{ $t("editCalendarView.headline") }}
</h3>
<i
class="pi pi-pencil"
style="font-size: 2rem"
></i>
</div>
<div
class="flex justify-content-center"
>
<p class="text-2xl m-2">{{ $t("editCalendarView.subTitle") }}</p>
</div>
<div
class="flex align-items-center justify-content-center m-4 w-full lg:w-8"
>
<DynamicPage
hideContent
:headline="$t('editCalendarView.headline')"
:subTitle="$t('editCalendarView.subTitle')"
icon="pi pi-pencil"
:button="{
label: $t('editCalendarView.loadCalendar'),
icon: 'pi pi-arrow-down',
disabled: !isToken(token),
onClick: loadCalendar
}"
>
<template #selection="{ flexSpecs }">
<InputText
v-model="token"
type="text"
class="w-full"
:class="flexSpecs"
autofocus
@keyup.enter="loadCalendar"
/>
</div>
<div
class="flex align-items-center justify-content-end m-2 w-full lg:w-8"
>
<Button
:label="$t('editCalendarView.loadCalendar')"
icon="pi pi-arrow-down"
class="col-12 md:col-4 mb-3 align-self-end"
@click="loadCalendar"
/>
</div>
</div>
</template>
</DynamicPage>
</template>
<style scoped></style>