Date Selector and Dynamic Routes #16
@@ -26,6 +26,7 @@ import {
|
|||||||
} from "formik";
|
} from "formik";
|
||||||
import { format } from "date-fns";
|
import { format } from "date-fns";
|
||||||
import { CalenderContext } from "../../contexts/CalenderContext";
|
import { CalenderContext } from "../../contexts/CalenderContext";
|
||||||
|
import FormValidateEmoji from "./FormValidateEmoji";
|
||||||
|
|
||||||
interface UpdateCalendarProps {
|
interface UpdateCalendarProps {
|
||||||
year: number;
|
year: number;
|
||||||
@@ -129,7 +130,7 @@ const DatePicker = (): JSX.Element => {
|
|||||||
const initRef = useRef();
|
const initRef = useRef();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Popover placement="bottom" initialFocusRef={initRef}>
|
<Popover w="100%" h="auto" placement="bottom" initialFocusRef={initRef}>
|
||||||
<PopoverTrigger>
|
<PopoverTrigger>
|
||||||
<Button border="none" variant="outline">
|
<Button border="none" variant="outline">
|
||||||
<Heading w="100%" h="auto">
|
<Heading w="100%" h="auto">
|
||||||
@@ -179,6 +180,10 @@ const DatePicker = (): JSX.Element => {
|
|||||||
spacing={6}
|
spacing={6}
|
||||||
py={4}
|
py={4}
|
||||||
>
|
>
|
||||||
|
<Heading as="h4" size="sm" fontWeight="semibold">
|
||||||
|
Required fields indicated with{" "}
|
||||||
|
<FormValidateEmoji type="Required" />
|
||||||
|
</Heading>
|
||||||
<Field name="date" validate={validateDate}>
|
<Field name="date" validate={validateDate}>
|
||||||
{({ field, form }: FieldProps) => (
|
{({ field, form }: FieldProps) => (
|
||||||
<FormControl
|
<FormControl
|
||||||
@@ -196,10 +201,10 @@ const DatePicker = (): JSX.Element => {
|
|||||||
<HStack
|
<HStack
|
||||||
alignContent="center"
|
alignContent="center"
|
||||||
alignItems="center"
|
alignItems="center"
|
||||||
pl={6}
|
pl={4}
|
||||||
w="100%"
|
w="100%"
|
||||||
h="auto"
|
h="auto"
|
||||||
spacing={0}
|
spacing={2}
|
||||||
>
|
>
|
||||||
<FormLabel fontWeight="semibold" htmlFor="date">
|
<FormLabel fontWeight="semibold" htmlFor="date">
|
||||||
{"Date:"}
|
{"Date:"}
|
||||||
@@ -214,15 +219,24 @@ const DatePicker = (): JSX.Element => {
|
|||||||
textAlign="center"
|
textAlign="center"
|
||||||
{...(!form.errors.date && form.touched.date
|
{...(!form.errors.date && form.touched.date
|
||||||
? {
|
? {
|
||||||
|
borderColor: "brand.valid",
|
||||||
|
boxShadow: "0 0 0 1px #00c17c",
|
||||||
|
_hover: {
|
||||||
borderColor: "brand.valid",
|
borderColor: "brand.valid",
|
||||||
boxShadow: "0 0 0 1px #00c17c",
|
boxShadow: "0 0 0 1px #00c17c",
|
||||||
_hover: {
|
},
|
||||||
borderColor: "brand.valid",
|
}
|
||||||
boxShadow: "0 0 0 1px #00c17c",
|
|
||||||
},
|
|
||||||
}
|
|
||||||
: "")}
|
: "")}
|
||||||
/>
|
/>
|
||||||
|
{!form.touched.date && (
|
||||||
|
<FormValidateEmoji type="Required" />
|
||||||
|
)}
|
||||||
|
{form.errors.name && form.touched.date && (
|
||||||
|
<FormValidateEmoji type="Error" />
|
||||||
|
)}
|
||||||
|
{!form.errors.name && form.touched.date && (
|
||||||
|
<FormValidateEmoji type="Valid" />
|
||||||
|
)}
|
||||||
</HStack>
|
</HStack>
|
||||||
<FormErrorMessage>
|
<FormErrorMessage>
|
||||||
{form.errors.date}
|
{form.errors.date}
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
import React, { FC } from "react";
|
import React, { FC } from "react";
|
||||||
|
|
||||||
interface EmojiValidateEmojiProps {
|
interface FormValidateEmojiProps {
|
||||||
type: string;
|
type: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
const EmojiValidateEmoji: FC<EmojiValidateEmojiProps> = ({
|
const FormValidateEmoji: FC<FormValidateEmojiProps> = ({
|
||||||
type,
|
type,
|
||||||
}: EmojiValidateEmojiProps) => {
|
}: FormValidateEmojiProps) => {
|
||||||
interface Validations {
|
interface Validations {
|
||||||
[key: string]: JSX.Element;
|
[key: string]: JSX.Element;
|
||||||
}
|
}
|
||||||
@@ -32,4 +32,4 @@ const EmojiValidateEmoji: FC<EmojiValidateEmojiProps> = ({
|
|||||||
return validations[`${type}`];
|
return validations[`${type}`];
|
||||||
};
|
};
|
||||||
|
|
||||||
export default EmojiValidateEmoji;
|
export default FormValidateEmoji
|
||||||
|
|||||||
Reference in New Issue
Block a user