ekoen-rebuild: orgId/siteId pass-through
When to use
- Any time you create or refactor a Next.js page under
packages/eKoENthat renders client components needingorgIdorsiteId. - Applies to smart-space-ac pages and any other ekoen-rebuild pages that fetch data client-side.
Required pattern
- Server page retrieves org/site from session using
getStrictSessionand passes them as props. - Client page/component receives
orgIdandsiteIdvia props and uses them for React Query keys/fetchers. - Do not read org/site from Redux or other client state for these pages.
Minimal example
Server page (SSR):
import { getStrictSession } from '@app/_server-action/session/get-session';
import sessionKey from '@helpers/cookie/session-key';
import PageClient from './_components/page-client';
const Page = async () => {
const org = await getStrictSession(sessionKey.ORG);
const currentSite = await getStrictSession(sessionKey.CURRENT_SITE);
return <PageClient orgId={org.id} siteId={currentSite.id} />;
};
export default Page;
Client page/component:
'use client';
interface PageClientProps {
orgId: string;
siteId: string;
}
const PageClient = ({ orgId, siteId }: PageClientProps) => {
// use orgId/siteId in React Query
return <div />;
};
export default PageClient;
Notes
- If query params include
siteId, prefer that value but fallback to the SSRsiteId. - Keep IDs as primitive props; avoid passing full org/site objects to reduce serialization.