pages updated

This commit is contained in:
Berkay 2025-05-14 16:48:54 +03:00
parent 4bdac8aa61
commit 28c1cd9d63
5 changed files with 39 additions and 24 deletions

View File

@ -4,13 +4,13 @@ import superUserTenantSomethingSecond from "./management/account/tenantSomething
import superUserBuildingPartsTenantSomething from "./building/parts/tenantSomething/page"; import superUserBuildingPartsTenantSomething from "./building/parts/tenantSomething/page";
const pageIndexMulti: Record<string, Record<string, React.FC<ContentProps>>> = { const pageIndexMulti: Record<string, Record<string, React.FC<ContentProps>>> = {
"panel/management/account/tenant/something": { "management/account/tenant/something": {
superUserTenantSomething: superUserTenantSomething, superUserTenantSomething: superUserTenantSomething,
}, },
"panel/management/account/tenant/somethingSecond": { "management/account/tenant/somethingSecond": {
superUserTenantSomething: superUserTenantSomethingSecond, superUserTenantSomething: superUserTenantSomethingSecond,
}, },
"panel/building/parts/tenant/something": { "building/parts/tenant/something": {
superUserTenantSomething: superUserBuildingPartsTenantSomething, superUserTenantSomething: superUserBuildingPartsTenantSomething,
}, },
}; };

View File

@ -1,19 +1,24 @@
'use client'; 'use client';
import React, { useState } from "react"; import React, { useState } from "react";
import TableComponent from "@/components/mutual/tableView/FullTableComp/component"; import TableComponent from "@/components/mutual/tableView/FullTableComp/component";
import { ContentProps } from "@/validations/mutual/dashboard/props";
import { EyeIcon, PencilIcon, PlusCircle, ArrowLeftFromLineIcon } from "lucide-react";
import Link from "next/link"; import Link from "next/link";
import CreateForm from "@/components/mutual/tableView/mutual/CreateForm"; import CreateForm from "@/components/mutual/tableView/mutual/CreateForm";
import UpdateForm from "@/components/mutual/tableView/mutual/UpdateForm"; import UpdateForm from "@/components/mutual/tableView/mutual/UpdateForm";
import ViewForm from "@/components/mutual/tableView/mutual/ViewForm"; import ViewForm from "@/components/mutual/tableView/mutual/ViewForm";
import { useRouter } from "next/navigation";
import { ContentProps } from "@/validations/mutual/dashboard/props";
import { EyeIcon, PencilIcon, PlusCircle, ArrowLeftFromLineIcon } from "lucide-react";
import { getSchemaByLanguage } from "@/schemas/custom/building/parts/tenantSomething/schemas";
// This is a mock page dont use it // This is a mock page dont use it
const superUserTenantSomething: React.FC<ContentProps> = ({ lang, translations, activePageUrl, mode }) => { const superUserTenantSomething: React.FC<ContentProps> = ({ lang, translations, activePageUrl, mode }) => {
const router = useRouter()
const [selectedRow, setSelectedRow] = useState<any>(null); const [selectedRow, setSelectedRow] = useState<any>(null);
const pageUrl = `/${lang}/${activePageUrl}?mode=list`
const getSchema = getSchemaByLanguage(lang)
const isList = mode === 'shortList' || mode === 'fullList'
const basePageUrl = `/panel/${lang}/${activePageUrl}?mode=`
const pageUrl = `/panel/${lang}/${activePageUrl}?mode=list`
const urls = { list: "http://localhost:3000/api/tst" } const urls = { list: "http://localhost:3000/api/tst" }
const initPaginationDefault = { page: 1, size: 10, orderFields: [], orderTypes: [], query: {} } const initPaginationDefault = { page: 1, size: 10, orderFields: [], orderTypes: [], query: {} }
const renderLastRowComponent = (reDirectUrl: string, IconToWrap: any) => { const renderLastRowComponent = (reDirectUrl: string, IconToWrap: any) => {
@ -21,11 +26,11 @@ const superUserTenantSomething: React.FC<ContentProps> = ({ lang, translations,
} }
const redirectUrls = { const redirectUrls = {
table: { table: {
update: renderLastRowComponent(`/${lang}/${activePageUrl}?mode=update`, PencilIcon), update: renderLastRowComponent(`${basePageUrl}=update`, PencilIcon),
view: renderLastRowComponent(`/${lang}/${activePageUrl}?mode=view`, EyeIcon), view: renderLastRowComponent(`${basePageUrl}=view`, EyeIcon),
}, },
page: { page: {
create: renderLastRowComponent(`/${lang}/${activePageUrl}?mode=create`, PlusCircle), create: renderLastRowComponent(`${basePageUrl}=create`, PlusCircle),
} }
} }
const schemas = { list: {} } const schemas = { list: {} }
@ -41,10 +46,8 @@ const superUserTenantSomething: React.FC<ContentProps> = ({ lang, translations,
"createdAt", "createdAt",
"updatedAt", "updatedAt",
] ]
const ListWithTableProps = { const listWithTableProps = {
urls: { urls: { list: "http://localhost:3000/api/tst" },
list: "http://localhost:3000/api/tst",
},
schemas: schemas, schemas: schemas,
translations: translations, translations: translations,
columns: columns, columns: columns,
@ -53,27 +56,33 @@ const superUserTenantSomething: React.FC<ContentProps> = ({ lang, translations,
setSelectedRow: setSelectedRow, setSelectedRow: setSelectedRow,
} }
const CreateFormProps = { const CreateFormProps = {
schemas: schemas, schemas: { create: getSchema.createSchema },
labels: getSchema.labels,
selectedRow: selectedRow, selectedRow: selectedRow,
} }
const UpdateFormProps = { const UpdateFormProps = {
rollbackTo: pageUrl, rollbackTo: pageUrl,
schemas: schemas, schemas: { update: getSchema.updateSchema },
labels: getSchema.labels,
selectedRow: selectedRow, selectedRow: selectedRow,
} }
const ViewFormProps = { const ViewFormProps = {
rollbackTo: pageUrl, rollbackTo: pageUrl,
schemas: schemas, schemas: { view: getSchema.detailSchema },
selectedRow: selectedRow, selectedRow: selectedRow,
labels: getSchema.labels,
} }
const RenderBackToList = <div onClick={() => setSelectedRow(null)}> const RenderBackToList = <div onClick={() => setSelectedRow(null)}>
{renderLastRowComponent(pageUrl, ArrowLeftFromLineIcon)} {renderLastRowComponent(pageUrl, ArrowLeftFromLineIcon)}
</div> </div>
const shortAddProps = { ...listWithTableProps, schemas: { table: getSchema.shortSchema }, columns: { table: getSchema.shortColumns } }
const fullAddProps = { ...listWithTableProps, schemas: { table: getSchema.detailSchema }, columns: { table: getSchema.columns } }
return ( return (
<> <>
{JSON.stringify(translations)} {/* {JSON.stringify(getSchema)} */}
{mode !== 'list' ? RenderBackToList : <TableComponent {...ListWithTableProps} />} {!isList && RenderBackToList}
{isList && mode === 'shortList' && <><TableComponent {...shortAddProps} /></>}
{isList && mode === 'fullList' && <><TableComponent {...fullAddProps} /></>}
{mode === 'create' && <CreateForm {...CreateFormProps} />} {mode === 'create' && <CreateForm {...CreateFormProps} />}
{mode === 'update' && <UpdateForm {...UpdateFormProps} />} {mode === 'update' && <UpdateForm {...UpdateFormProps} />}
{mode === 'view' && <ViewForm {...ViewFormProps} />} {mode === 'view' && <ViewForm {...ViewFormProps} />}

View File

@ -21,7 +21,13 @@ export function loginHook(
response.json().then((data) => { response.json().then((data) => {
console.log("data", data); // setJsonText(JSON.stringify(data)); console.log("data", data); // setJsonText(JSON.stringify(data));
setTimeout(() => { setTimeout(() => {
Router.push(`/auth/${lang}/select`); const userType =
data?.data?.user_type.toLowerCase() === "employee"
? "employee"
: "occupant";
const rediretUrl = `/auth/${lang}/select?type=${userType}`;
console.log("rediretUrl", rediretUrl);
Router.push(rediretUrl);
}, 100); }, 100);
}); });
} else { } else {

View File

@ -18,7 +18,7 @@ function Login({ language }: AuthPageProps) {
const [jsonText, setJsonText] = useState<string | null>(null); const [jsonText, setJsonText] = useState<string | null>(null);
const { register, formState: { errors }, handleSubmit, } = useForm<LoginFormData>({ resolver: zodResolver(loginSchemaEmail) }); const { register, formState: { errors }, handleSubmit, } = useForm<LoginFormData>({ resolver: zodResolver(loginSchemaEmail) });
const onSubmit = async (data: LoginFormData) => { loginHook(startTransition, data, setError, setJsonText, Router) }; const onSubmit = async (data: LoginFormData) => { loginHook(startTransition, data, setError, setJsonText, Router, language) };
return ( return (
<> <>

View File

@ -10,7 +10,7 @@ function selectEmployeeHook(
) { ) {
try { try {
const sendData = { ...data }; const sendData = { ...data };
const urlToDirect = `/auth/${lang}/panel/building/parts/tenant/something`; const urlToDirect = `/panel/${lang}/building/parts/tenant/something`;
startTransition(() => { startTransition(() => {
fetch("/api/selection/employee", { fetch("/api/selection/employee", {
method: "POST", method: "POST",