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:
Hayden 2022-03-22 20:41:54 -08:00 committed by GitHub
parent e743d2c66b
commit ba325c12f7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 41 additions and 17 deletions

View file

@ -9,7 +9,7 @@
<h3 v-if="showTitleEditor[index]" class="mt-2">{{ ingredient.title }}</h3>
<v-divider v-if="showTitleEditor[index]"></v-divider>
<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>
<VueMarkdown
class="ma-0 pa-0 text-subtitle-1 dense-markdown"
@ -85,13 +85,4 @@ export default defineComponent({
.dense-markdown p {
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>

View file

@ -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";
export function useAppInfo(): Ref<AppInfo | null> {
const appInfo = ref<null | AppInfo>(null);
onMounted(async () => {
const data = await fetch("/api/app/about").then((res) => res.json());
appInfo.value = data as AppInfo;
});
const { $axios } = useContext();
useAsync(async () => {
const data = await $axios.get<AppInfo>("/api/app/about");
appInfo.value = data.data;
}, useAsyncKey());
return appInfo;
}

View 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,
};
}

View file

@ -25,7 +25,7 @@
<v-card-title class="headline justify-center pb-1"> Sign In </v-card-title>
<v-card-text>
<v-form @submit.prevent="authenticate()">
<v-form @submit.prevent="authenticate">
<v-text-field
v-model="form.email"
:prepend-inner-icon="$globals.icons.email"
@ -41,12 +41,14 @@
id="password"
v-model="form.password"
:prepend-inner-icon="$globals.icons.lock"
:append-icon="passwordIcon"
filled
rounded
class="rounded-lg"
name="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-card-actions class="justify-center pt-0">
@ -110,6 +112,7 @@
import { defineComponent, ref, useContext, computed, reactive } from "@nuxtjs/composition-api";
import { useDark } from "@vueuse/core";
import { useAppInfo } from "~/composables/api";
import { usePasswordField } from "~/composables/use-password-field";
import { alert } from "~/composables/use-toast";
import { useToggleDarkMode } from "~/composables/use-utils";
export default defineComponent({
@ -131,6 +134,8 @@ export default defineComponent({
const appInfo = useAppInfo();
const { passwordIcon, inputType, togglePasswordShow } = usePasswordField();
const allowSignup = computed(() => appInfo.value?.allowSignup || false);
async function authenticate() {
@ -169,6 +174,9 @@ export default defineComponent({
allowSignup,
authenticate,
toggleDark,
passwordIcon,
inputType,
togglePasswordShow,
};
},