import { Alert, AlertDescription, AlertTitle, Checkbox, FormControl, FormField, FormItem, FormLabel, FormMessage, ScrollArea, Skeleton, Awaiting } from "@marzneshin/common/components"; import { Link } from "@tanstack/react-router"; import { ExclamationTriangleIcon } from '@radix-ui/react-icons'; import { useServicesQuery, type ServiceType, } from "@marzneshin/modules/services"; import { ServiceCard } from "@marzneshin/modules/users"; import { cn } from "@marzneshin/common/utils"; import type { FC } from "react"; import { useFormContext, type FieldValues, type ControllerRenderProps, } from "react-hook-form"; import { useTranslation } from "react-i18next"; interface ServiceCheckboxCardProps { service: ServiceType; field: ControllerRenderProps; } const ServiceCheckboxCard: FC = ({ service, field, }) => (
checked ? field.onChange([...field.value, service.id]) : field.onChange( field.value?.filter((value: number) => value !== service.id), ) } />
); const ServiceSkeletons: FC = () => ( <> ); const ServicesList: FC<{ services: ServiceType[] }> = ({ services }) => { const form = useFormContext(); return ( {services.map((service) => ( ( )} /> ))} ); }; const ServicesAlert: FC = () => { const { t } = useTranslation(); return ( {t('page.users.services-alert.title')} {t('page.users.services-alert.desc')} {t('page.users.services-alert.click')} ); }; export const ServicesField: FC = () => { const form = useFormContext(); const { data, isFetching } = useServicesQuery({ page: 1, size: 100 }); const { t } = useTranslation(); return ( ( {t("services")} } isNotFound={data.entities.length === 0} NotFound={} Component={} /> )} /> ); };