Refine tags/favs validation

This commit is contained in:
Sam Becker 2024-01-02 23:02:54 -05:00
parent 4ba7455442
commit 7905fb569b
2 changed files with 6 additions and 3 deletions

View File

@ -14,7 +14,7 @@ import {
} from '@/vendors/fujifilm';
import { FilmSimulation } from '@/simulation';
import { GEO_PRIVACY_ENABLED } from '@/site/config';
import { TAG_FAVS } from '@/tag';
import { TAG_FAVS, doesTagsStringIncludeFavs } from '@/tag';
type VirtualFields = 'favorite';
@ -42,7 +42,7 @@ const FORM_METADATA: Record<keyof PhotoFormData, FormMeta> = {
tags: {
label: 'tags',
note: 'comma-separated values',
validate: tags => tags?.toLowerCase().includes(TAG_FAVS)
validate: tags => doesTagsStringIncludeFavs(tags)
? `'${TAG_FAVS}' is a reserved tag`
: undefined,
},

View File

@ -5,7 +5,7 @@ import {
photoQuantityText,
} from '@/photo';
import { absolutePathForTag, absolutePathForTagImage } from '@/site/paths';
import { capitalizeWords } from '@/utility/string';
import { capitalizeWords, convertStringToArray } from '@/utility/string';
export const TAG_FAVS = 'favs';
@ -17,6 +17,9 @@ export type Tags = {
export const formatTag = (tag?: string) =>
capitalizeWords(tag?.replaceAll('-', ' '));
export const doesTagsStringIncludeFavs = (tags?: string) =>
convertStringToArray(tags)?.some(tag => isTagFavs(tag));
export const titleForTag = (
tag: string,
photos:Photo[],