feat: parseAcfLink
This commit is contained in:
@@ -1,9 +1,5 @@
|
|||||||
fragment AcfMedia on GroupAbstractMedia_Fields {
|
fragment AcfMedia on GroupAbstractMedia_Fields {
|
||||||
image {
|
image { node { ... AcfImage } }
|
||||||
node {
|
|
||||||
...AcfImage
|
|
||||||
}
|
|
||||||
}
|
|
||||||
aspectRatio
|
aspectRatio
|
||||||
objectFit
|
objectFit
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,20 +0,0 @@
|
|||||||
<script setup lang="ts">
|
|
||||||
const { isLoggedIn } = useAuth();
|
|
||||||
const attrs = computed(() => {
|
|
||||||
return isLoggedIn.value
|
|
||||||
? {
|
|
||||||
label: "Déconnexion",
|
|
||||||
icon: "i-lucide-log-out",
|
|
||||||
}
|
|
||||||
: {
|
|
||||||
label: "Connexion",
|
|
||||||
icon: "i-lucide-log-in",
|
|
||||||
};
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<template>
|
|
||||||
<AuthState>
|
|
||||||
<UButton to="/connexion" v-bind="attrs" color="neutral" />
|
|
||||||
</AuthState>
|
|
||||||
</template>
|
|
||||||
18
wp-content/themes/moonshine/app/utils/acf-link.ts
Normal file
18
wp-content/themes/moonshine/app/utils/acf-link.ts
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
import * as z from "zod";
|
||||||
|
import type { AcfLinkFragment } from "#graphql/operations";
|
||||||
|
|
||||||
|
const acfLinkSchema = z.object({
|
||||||
|
title: z.string(),
|
||||||
|
url: z.string(),
|
||||||
|
target: z.string().optional().default(""),
|
||||||
|
});
|
||||||
|
export type AcfLinkOutput = z.infer<typeof acfLinkSchema>;
|
||||||
|
|
||||||
|
export function parseAcfLink(data?: Partial<AcfLinkFragment>) {
|
||||||
|
try {
|
||||||
|
return acfLinkSchema.parse(data);
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -119,4 +119,5 @@ export default defineNuxtConfig({
|
|||||||
componentPrefix: "Svg",
|
componentPrefix: "Svg",
|
||||||
defaultImport: "component",
|
defaultImport: "component",
|
||||||
},
|
},
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user