import { useTranslation } from "react-i18next"; import { Link, Outlet, useActionData, useLoaderData, useParams } from "react-router"; import CheckPlanFeatureLimit from "~/components/core/settings/subscription/CheckPlanFeatureLimit"; import RowForm from "~/components/entities/rows/RowForm"; import NewPageLayout from "~/components/ui/layouts/NewPageLayout"; import { EntitiesApi } from "~/utils/api/.server/EntitiesApi"; import { RowWithDetails } from "~/utils/db/entities/rows.db.server"; import RowHelper from "~/utils/helpers/RowHelper"; import clsx from "clsx"; import EntityHelper from "~/utils/helpers/EntityHelper"; import { Rows_New } from "../routes/Rows_New.server"; import { Fragment, useEffect, useState } from "react"; import ButtonSecondary from "~/components/ui/buttons/ButtonSecondary"; import ButtonPrimary from "~/components/ui/buttons/ButtonPrimary"; import toast from "react-hot-toast"; import { useAppOrAdminData } from "~/utils/data/useAppOrAdminData"; import { translateEntityTitle, translatePropertyTitle } from "~/utils/i18n/translateLabel"; interface Props { showBreadcrumb?: boolean; className?: string; } export default function RowNewRoute({ showBreadcrumb = true, className }: Props) { const appOrAdminData = useAppOrAdminData(); const data = useLoaderData(); const params = useParams(); const { t, i18n } = useTranslation(); const actionData = useActionData(); const [selectedTemplate, setSelectedTemplate] = useState<{ title: string; config: string } | null>(null); useEffect(() => { if (actionData?.error) { toast.error(actionData.error); } }, [actionData, t]); return ( {data.entityData.entity.templates.length > 0 && (
{/* */}
{data.entityData.entity.templates .sort((a, b) => (new Date(b.createdAt).getTime() > new Date(a.createdAt).getTime() ? -1 : 1)) .map((template) => { return ( ); })}
)}
{actionData?.newRow && actionData?.saveAndAdd ? ( ) : ( )}
); } function RowCreated({ entityData, routes, newRow }: { entityData: EntitiesApi.GetEntityData; routes: EntitiesApi.Routes; newRow: RowWithDetails }) { const { t, i18n } = useTranslation(); // const params = useParams(); return (
{/* */}
{t("shared.created")}
{entityData.entity.properties.filter((f) => f.isDisplay).length === 0 ? (
{RowHelper.getTextDescription({ entity: entityData.entity, item: newRow, t })}
) : ( <> {entityData.entity.properties .filter((f) => f.isDisplay) .sort((a, b) => a.order - b.order) .map((property, idx) => (
{translatePropertyTitle(t, i18n, entityData.entity.name, property)}
{RowHelper.getCellValue({ entity: entityData.entity, property, item: newRow })}
))} )}
{t("shared.viewAll")}
{t("shared.view")} {t("shared.addAnother")}
); }