feat: update links field (#5212)

Closes #5113

---------

Co-authored-by: Jérémy Magrin <jeremy.magrin@gmail.com>
This commit is contained in:
Thaïs
2024-05-01 14:56:55 +02:00
committed by GitHub
parent 8853226d17
commit 0d023e5e77
11 changed files with 146 additions and 56 deletions

View File

@ -27,6 +27,7 @@ export const LinksFieldInput = ({
persistLinksField({
primaryLinkUrl: url,
primaryLinkLabel: '',
secondaryLinks: [],
}),
);
};
@ -36,6 +37,7 @@ export const LinksFieldInput = ({
persistLinksField({
primaryLinkUrl: url,
primaryLinkLabel: '',
secondaryLinks: [],
}),
);
};
@ -45,6 +47,7 @@ export const LinksFieldInput = ({
persistLinksField({
primaryLinkUrl: url,
primaryLinkLabel: '',
secondaryLinks: [],
}),
);
};
@ -54,6 +57,7 @@ export const LinksFieldInput = ({
persistLinksField({
primaryLinkUrl: url,
primaryLinkLabel: '',
secondaryLinks: [],
}),
);
};
@ -63,6 +67,7 @@ export const LinksFieldInput = ({
persistLinksField({
primaryLinkUrl: url,
primaryLinkLabel: '',
secondaryLinks: [],
}),
);
};
@ -71,6 +76,7 @@ export const LinksFieldInput = ({
setDraftValue({
primaryLinkUrl: url,
primaryLinkLabel: '',
secondaryLinks: [],
});
};

View File

@ -30,7 +30,7 @@ export type FieldLinkDraftValue = { url: string; label: string };
export type FieldLinksDraftValue = {
primaryLinkLabel: string;
primaryLinkUrl: string;
secondaryLinks?: string | null;
secondaryLinks?: { label: string; url: string }[] | null;
};
export type FieldCurrencyDraftValue = {
currencyCode: CurrencyCode;

View File

@ -151,7 +151,7 @@ export type FieldLinkValue = { url: string; label: string };
export type FieldLinksValue = {
primaryLinkLabel: string;
primaryLinkUrl: string;
secondaryLinks?: string | null;
secondaryLinks?: { label: string; url: string }[] | null;
};
export type FieldCurrencyValue = {
currencyCode: CurrencyCode;

View File

@ -7,7 +7,9 @@ import { FieldLinksValue } from '../FieldMetadata';
export const linksSchema = z.object({
primaryLinkLabel: z.string(),
primaryLinkUrl: absoluteUrlSchema,
secondaryLinks: z.string().optional().nullable(),
secondaryLinks: z
.array(z.object({ label: z.string(), url: absoluteUrlSchema }))
.nullable(),
}) satisfies z.ZodType<FieldLinksValue>;
export const isFieldLinksValue = (