diff --git a/lib/client/chapterSchema.ts b/lib/client/chapterSchema.ts deleted file mode 100644 index 64b1e2a..0000000 --- a/lib/client/chapterSchema.ts +++ /dev/null @@ -1,56 +0,0 @@ -import * as yup from "yup"; -import { FormChapter, FormStory } from "./types/FormStory"; - -export const cs = yup.object().shape({ - chapterTitle: yup.string().ensure().min(1).trim().required("Chapter title cannot be blank."), - summary: yup.string().ensure().min(10).required("Summary cannot be blank"), - notes: yup.string().ensure(), - bands: yup.array().ensure().of(yup.number()).min(1, "One or more bands must be selected."), - characters: yup.array().ensure().min(1, "One or more characters must be selected"), - relationships: yup.array().ensure().of( - yup.array().ensure().of( - yup.string() - ).min(2, "Pairings must have at least two characters!").max(3, "Pairings can have no more than three characters!") - ), - nsfw: yup.boolean().oneOf([true, false]), - loggedInOnly: yup.boolean() - .when("nsfw", ([nsfw], schema) => { - return nsfw ? schema.oneOf([true], "If your story contains adult content, you MUST restrict the ability to read it to logged-in users only. Failure to comply may result in a takedown.") : schema.oneOf([true, false]) - }), - hidden: yup.boolean().oneOf([true, false]), - pot: yup.string().oneOf(["pasteOrType", "upload"]).required("Story content is required!"), - storytext: yup.string().when("pot", - ([pot], schema) => { - return pot === "pasteOrType" ? schema.test("numWords", "Story must be at least 50 words", - (value:any, context) => { - return value?.split(/\W+/).length > 50 || false - }).required("Story text can't be blank!") : schema.min(0) - }), - // hello Celeste - docFile: yup.mixed().when("pot", ([pot], schema) => { - return pot === "upload" ? yup.mixed().test("exists", "You need to upload a file!", (value) => { - // console.debug("file: ", value) - return !!value; - }).test("fileType", "Supported files are *.docx and *.doc", (value) => { - let ext; - if(typeof value == "string") { - ext = value?.split(".").reverse()[0] - } else { - ext = (value as File)?.name?.split(".").reverse()[0] - } - // console.log(ext) - let reg = /(docx|doc)$/i - return reg.test(ext) - }) : yup.mixed() - } /* { - is: "upload", - then: , - otherwise: yup.mixed() - } */) -}) - -export const storySchema = yup.object().shape({ - title: yup.string().ensure().min(5).required("Title cannot be blank"), - chapters: yup.array().ensure().of(cs), - completed: yup.boolean().oneOf([true, false]) -}) \ No newline at end of file