base con autenticacion, registro, modulo encuestas

This commit is contained in:
2025-06-16 12:02:22 -04:00
commit 475e0754df
411 changed files with 26265 additions and 0 deletions

View File

@@ -0,0 +1,13 @@
import PageContainer from '@/components/layout/page-container';
import { SurveyBuilder } from '@/feactures/surveys/components/admin/survey-builder';
export default function CreateSurveyPage() {
return (
<PageContainer>
<div className="w-full">
<h1 className="text-2xl font-bold mb-6">Crear Nueva Encuesta</h1>
<SurveyBuilder />
</div>
</PageContainer>
);
}

View File

@@ -0,0 +1,13 @@
import PageContainer from "@/components/layout/page-container";
import { SurveyBuilder } from "@/feactures/surveys/components/admin/survey-builder";
export default function EditSurveyPage() {
return (
<PageContainer>
<div className="w-full">
<h1 className="text-2xl font-bold mb-6">Editar Encuesta</h1>
<SurveyBuilder />
</div>
</PageContainer>
)
}

View File

@@ -0,0 +1,37 @@
import PageContainer from '@/components/layout/page-container';
import SurveysAdminList from '@/feactures/surveys/components/admin/surveys-admin-list';
import { SurveysHeader } from '@/feactures/surveys/components/admin/surveys-header';
import SurveysTableAction from '@/feactures/surveys/components/admin/surveys-tables/survey-table-action';
import { searchParamsCache, serialize } from '@/feactures/surveys/utils/searchparams';
import { SearchParams } from 'nuqs';
type pageProps = {
searchParams: Promise<SearchParams>;
};
export default async function SurveyAdminPage(props: pageProps) {
const searchParams = await props.searchParams;
searchParamsCache.parse(searchParams);
const key = serialize({ ...searchParams });
const page = Number(searchParamsCache.get('page')) || 1;
const search = searchParamsCache.get('q');
const pageLimit = Number(searchParamsCache.get('limit')) || 10;
const type = searchParamsCache.get('type');
return (
<PageContainer scrollable={false}>
<div className="flex flex-1 flex-col space-y-4">
<SurveysHeader />
<SurveysTableAction />
<SurveysAdminList
initialPage={page}
initialSearch={search}
initialLimit={pageLimit}
initialType={type}
/>
</div>
</PageContainer>
);
}