'use client';
import React, {
DetailedHTMLProps,
FC,
InputHTMLAttributes,
useCallback,
useMemo,
} from 'react';
import { clsx } from 'clsx';
import { useFormContext } from 'react-hook-form';
import dayjs from 'dayjs';
import { useShowPostSelector } from '../../../../apps/frontend/src/components/post-url-selector/post.url.selector';
import interClass from '../helpers/inter.font';
export const Canonical: FC<
DetailedHTMLProps, HTMLInputElement> & {
error?: any;
date: dayjs.Dayjs;
disableForm?: boolean;
label: string;
name: string;
}
> = (props) => {
const { label, date, className, disableForm, error, ...rest } = props;
const form = useFormContext();
const err = useMemo(() => {
if (error) return error;
if (!form || !form.formState.errors[props?.name!]) return;
return form?.formState?.errors?.[props?.name!]?.message! as string;
}, [form?.formState?.errors?.[props?.name!]?.message, error]);
const postSelector = useShowPostSelector(date);
const onPostSelector = useCallback(async () => {
const id = await postSelector();
if (disableForm) {
// @ts-ignore
return rest.onChange({
// @ts-ignore
target: { value: id, name: props.name },
});
}
return form.setValue(props.name, id);
}, [form]);
return (
);
};