All files / src/features/Minibuilders/FundraisersMinibuilder utils.ts

100% Statements 5/5
100% Branches 0/0
100% Functions 0/0
100% Lines 5/5

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82          4x             4x                                                 4x       4x                               4x                                                
import * as Yup from "yup";
import { VALIDATION_MESSAGES } from "@validation/messages";
import { AmountType, TPaymentTypes } from "./types";
import { ContentState, EditorState } from "draft-js";
 
const paymentTypes: TPaymentTypes[] = [
  "one_time",
  "monthly",
  "quarterly",
  "yearly",
];
 
export const FundraiserModalSchema = Yup.object().shape({
  about: Yup.object().shape({
    title: Yup.string().trim().required(VALIDATION_MESSAGES.REQUIRED),
    description: Yup.string(),
  }),
  style: Yup.object().shape({
    image: Yup.mixed().nullable(),
    useAsBackground: Yup.boolean(),
  }),
  payment_set_up: Yup.object().shape({
    payment_types: Yup.object().shape({
      default: Yup.mixed<TPaymentTypes>().oneOf(paymentTypes).required(),
      one_time: Yup.boolean(),
      monthly: Yup.boolean(),
      quarterly: Yup.boolean(),
      yearly: Yup.boolean(),
    }),
    amountsList: Yup.array<AmountType>().min(1),
  }),
  configuration: Yup.object().shape({
    customer_pays_fees: Yup.boolean(),
    browse_more: Yup.boolean(),
  }),
});
 
const anyAmountDescription = EditorState.createWithContent(
  ContentState.createFromText("Any payment amount is accepted."),
);
 
const initialAmounts = [
  {
    id: "1",
    active: true,
    title: "Any Amount",
    description: anyAmountDescription,
    amount: "",
    isDefault: true,
    min_max: {
      enabled: false,
      min: "1.00",
      max: "25,000.00",
    },
  },
];
 
export const FundraiserModalDefaults = {
  about: {
    title: "",
    description: "",
  },
  style: {
    image: null,
    useAsBackground: false,
  },
  payment_set_up: {
    payment_types: {
      default: "one_time" as TPaymentTypes,
      one_time: true,
      monthly: false,
      quarterly: false,
      yearly: false,
    },
    amountsList: initialAmounts,
  },
  configuration: {
    customer_pays_fees: false,
    browse_more: false,
  },
};