Adds the full Next.js app (app/, components/, lib/, scripts/, assets/, docs/, Dockerfile, compose, configs) to version control. Security: - CIPC BizPortal customer-code logins (Login 1 + Login 3) now read CIPC_LOGIN1_CODE / CIPC_LOGIN1_PASSWORD / CIPC_LOGIN3_CODE / CIPC_LOGIN3_PASSWORD from .env.local instead of source. - BizPortal personal login in apply-bizportal route reads BIZPORTAL_ID_NO / BIZPORTAL_PASSWORD. - Added .env.example as the committed template. .gitignore excludes .env*, node_modules, .next, logs, sqlite, Playwright storage_state.json (live CIPC cookies), scratch dirs, client PDFs and debug screenshots.
46 lines
1.7 KiB
TypeScript
46 lines
1.7 KiB
TypeScript
// app/cipc-2/page.tsx
|
|
// CIPC2.0 tab — a DESIGN SANDBOX copy of /cipc. Behaviour is identical
|
|
// (same two searches, same shared /api/cipc/* backend, same Python
|
|
// scripts); only the visuals are meant to be reworked here before
|
|
// porting the winning look back across.
|
|
//
|
|
// 1. Search by Enterprise No. (K-number) → full company detail
|
|
// 2. Search by Director ID No. (13-digit SA ID) → companies where the ID is a director
|
|
//
|
|
// The original /cipc tab is left completely untouched — including its
|
|
// own localStorage cache namespace (cipc:* vs cipc2:*) — so you can
|
|
// run both side by side and delete either one afterwards.
|
|
|
|
import { Suspense } from "react";
|
|
import PageHeader from "@/components/PageHeader";
|
|
import CipcExplorer from "./CipcExplorer";
|
|
|
|
export const dynamic = "force-dynamic";
|
|
|
|
export default async function CipcPage() {
|
|
return (
|
|
<>
|
|
<PageHeader
|
|
eyebrow="CIPC2.0"
|
|
title="Companies & Intellectual Property Commission"
|
|
subtitle={
|
|
<>
|
|
<span>
|
|
This tab runs two CIPC searches — one to look up a company by its registration number,
|
|
one to find every company where a person is a director.
|
|
</span>
|
|
<span>
|
|
Both use the same shared CIPC account pool with auto-rotation when the daily limit is reached.
|
|
</span>
|
|
<span>Redesign sandbox · the original CIPC tab still works exactly as before.</span>
|
|
</>
|
|
}
|
|
/>
|
|
<section className="container-x py-10">
|
|
<Suspense fallback={<div className="text-muted">Loading…</div>}>
|
|
<CipcExplorer />
|
|
</Suspense>
|
|
</section>
|
|
</>
|
|
);
|
|
}
|