Fix/fix broken pwa (#1086)
* remove fetch / use axios fix #1077 * revert checkbox change * add password peek * fix bool check
This commit is contained in:
parent
e743d2c66b
commit
ba325c12f7
4 changed files with 41 additions and 17 deletions
|
@ -9,7 +9,7 @@
|
||||||
<h3 v-if="showTitleEditor[index]" class="mt-2">{{ ingredient.title }}</h3>
|
<h3 v-if="showTitleEditor[index]" class="mt-2">{{ ingredient.title }}</h3>
|
||||||
<v-divider v-if="showTitleEditor[index]"></v-divider>
|
<v-divider v-if="showTitleEditor[index]"></v-divider>
|
||||||
<v-list-item dense @click="toggleChecked(index)">
|
<v-list-item dense @click="toggleChecked(index)">
|
||||||
<v-checkbox hide-details :value="checked[index]" color="secondary" />
|
<v-checkbox hide-details :value="checked[index]" class="pt-0 my-auto py-auto" color="secondary" />
|
||||||
<v-list-item-content>
|
<v-list-item-content>
|
||||||
<VueMarkdown
|
<VueMarkdown
|
||||||
class="ma-0 pa-0 text-subtitle-1 dense-markdown"
|
class="ma-0 pa-0 text-subtitle-1 dense-markdown"
|
||||||
|
@ -85,13 +85,4 @@ export default defineComponent({
|
||||||
.dense-markdown p {
|
.dense-markdown p {
|
||||||
margin: auto !important;
|
margin: auto !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.v-input--selection-controls {
|
|
||||||
margin-top: 0.5rem;
|
|
||||||
margin-bottom: auto !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.v-input--selection-controls__input {
|
|
||||||
margin-bottom: auto !important;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -1,13 +1,16 @@
|
||||||
import { onMounted, ref, Ref } from "@nuxtjs/composition-api";
|
import { ref, Ref, useAsync, useContext } from "@nuxtjs/composition-api";
|
||||||
|
import { useAsyncKey } from "../use-utils";
|
||||||
import { AppInfo } from "~/types/api-types/admin";
|
import { AppInfo } from "~/types/api-types/admin";
|
||||||
|
|
||||||
export function useAppInfo(): Ref<AppInfo | null> {
|
export function useAppInfo(): Ref<AppInfo | null> {
|
||||||
const appInfo = ref<null | AppInfo>(null);
|
const appInfo = ref<null | AppInfo>(null);
|
||||||
|
|
||||||
onMounted(async () => {
|
const { $axios } = useContext();
|
||||||
const data = await fetch("/api/app/about").then((res) => res.json());
|
|
||||||
appInfo.value = data as AppInfo;
|
useAsync(async () => {
|
||||||
});
|
const data = await $axios.get<AppInfo>("/api/app/about");
|
||||||
|
appInfo.value = data.data;
|
||||||
|
}, useAsyncKey());
|
||||||
|
|
||||||
return appInfo;
|
return appInfo;
|
||||||
}
|
}
|
||||||
|
|
22
frontend/composables/use-password-field.ts
Normal file
22
frontend/composables/use-password-field.ts
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
import { computed, ref, useContext } from "@nuxtjs/composition-api";
|
||||||
|
|
||||||
|
export function usePasswordField() {
|
||||||
|
const show = ref(false);
|
||||||
|
|
||||||
|
const { $globals } = useContext();
|
||||||
|
|
||||||
|
const passwordIcon = computed(() => {
|
||||||
|
return show.value ? $globals.icons.eyeOff : $globals.icons.eye;
|
||||||
|
});
|
||||||
|
const inputType = computed(() => (show.value ? "text" : "password"));
|
||||||
|
|
||||||
|
const togglePasswordShow = () => {
|
||||||
|
show.value = !show.value;
|
||||||
|
};
|
||||||
|
|
||||||
|
return {
|
||||||
|
inputType,
|
||||||
|
togglePasswordShow,
|
||||||
|
passwordIcon,
|
||||||
|
};
|
||||||
|
}
|
|
@ -25,7 +25,7 @@
|
||||||
|
|
||||||
<v-card-title class="headline justify-center pb-1"> Sign In </v-card-title>
|
<v-card-title class="headline justify-center pb-1"> Sign In </v-card-title>
|
||||||
<v-card-text>
|
<v-card-text>
|
||||||
<v-form @submit.prevent="authenticate()">
|
<v-form @submit.prevent="authenticate">
|
||||||
<v-text-field
|
<v-text-field
|
||||||
v-model="form.email"
|
v-model="form.email"
|
||||||
:prepend-inner-icon="$globals.icons.email"
|
:prepend-inner-icon="$globals.icons.email"
|
||||||
|
@ -41,12 +41,14 @@
|
||||||
id="password"
|
id="password"
|
||||||
v-model="form.password"
|
v-model="form.password"
|
||||||
:prepend-inner-icon="$globals.icons.lock"
|
:prepend-inner-icon="$globals.icons.lock"
|
||||||
|
:append-icon="passwordIcon"
|
||||||
filled
|
filled
|
||||||
rounded
|
rounded
|
||||||
class="rounded-lg"
|
class="rounded-lg"
|
||||||
name="password"
|
name="password"
|
||||||
label="Password"
|
label="Password"
|
||||||
type="password"
|
:type="inputType"
|
||||||
|
@click:append="togglePasswordShow"
|
||||||
/>
|
/>
|
||||||
<v-checkbox v-model="form.remember" class="ml-2 mt-n2" label="Remember Me"></v-checkbox>
|
<v-checkbox v-model="form.remember" class="ml-2 mt-n2" label="Remember Me"></v-checkbox>
|
||||||
<v-card-actions class="justify-center pt-0">
|
<v-card-actions class="justify-center pt-0">
|
||||||
|
@ -110,6 +112,7 @@
|
||||||
import { defineComponent, ref, useContext, computed, reactive } from "@nuxtjs/composition-api";
|
import { defineComponent, ref, useContext, computed, reactive } from "@nuxtjs/composition-api";
|
||||||
import { useDark } from "@vueuse/core";
|
import { useDark } from "@vueuse/core";
|
||||||
import { useAppInfo } from "~/composables/api";
|
import { useAppInfo } from "~/composables/api";
|
||||||
|
import { usePasswordField } from "~/composables/use-password-field";
|
||||||
import { alert } from "~/composables/use-toast";
|
import { alert } from "~/composables/use-toast";
|
||||||
import { useToggleDarkMode } from "~/composables/use-utils";
|
import { useToggleDarkMode } from "~/composables/use-utils";
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
|
@ -131,6 +134,8 @@ export default defineComponent({
|
||||||
|
|
||||||
const appInfo = useAppInfo();
|
const appInfo = useAppInfo();
|
||||||
|
|
||||||
|
const { passwordIcon, inputType, togglePasswordShow } = usePasswordField();
|
||||||
|
|
||||||
const allowSignup = computed(() => appInfo.value?.allowSignup || false);
|
const allowSignup = computed(() => appInfo.value?.allowSignup || false);
|
||||||
|
|
||||||
async function authenticate() {
|
async function authenticate() {
|
||||||
|
@ -169,6 +174,9 @@ export default defineComponent({
|
||||||
allowSignup,
|
allowSignup,
|
||||||
authenticate,
|
authenticate,
|
||||||
toggleDark,
|
toggleDark,
|
||||||
|
passwordIcon,
|
||||||
|
inputType,
|
||||||
|
togglePasswordShow,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue