feat: add primary key and index toggle functionality to ColumnGrid component

- Introduced `onPkToggle` and `onIndexToggle` props to the `ColumnGrid` component, allowing users to toggle primary key and index states directly from the UI.
- Updated the `TableManagementPage` to handle these new toggle events, enhancing the interactivity and usability of the table management features.

These changes aim to improve the table configuration process within the ERP system, providing users with more control over their table structures.
This commit is contained in:
DDD1542 2026-03-16 18:59:45 +09:00
parent 43aafb36c1
commit 6a50e1e924
2 changed files with 10 additions and 2 deletions

View File

@ -1592,6 +1592,10 @@ export default function TableManagementPage() {
constraints={constraints}
typeFilter={typeFilter}
getColumnIndexState={getColumnIndexState}
onPkToggle={handlePkToggle}
onIndexToggle={(columnName, checked) =>
handleIndexToggle(columnName, "index", checked)
}
/>
</>
)}

View File

@ -21,6 +21,8 @@ export interface ColumnGridProps {
constraints: ColumnGridConstraints;
typeFilter?: string | null;
getColumnIndexState?: (columnName: string) => { isPk: boolean; hasIndex: boolean };
onPkToggle?: (columnName: string, checked: boolean) => void;
onIndexToggle?: (columnName: string, checked: boolean) => void;
}
function getIndexState(
@ -49,6 +51,8 @@ export function ColumnGrid({
constraints,
typeFilter = null,
getColumnIndexState: externalGetIndexState,
onPkToggle,
onIndexToggle,
}: ColumnGridProps) {
const getIdxState = useMemo(
() => externalGetIndexState ?? ((name: string) => getIndexState(name, constraints)),
@ -193,7 +197,7 @@ export function ColumnGrid({
)}
onClick={(e) => {
e.stopPropagation();
onColumnChange(column.columnName, "isPrimaryKey" as keyof ColumnTypeInfo, !idxState.isPk);
onPkToggle?.(column.columnName, !idxState.isPk);
}}
title="Primary Key 토글"
>
@ -225,7 +229,7 @@ export function ColumnGrid({
)}
onClick={(e) => {
e.stopPropagation();
onColumnChange(column.columnName, "hasIndex" as keyof ColumnTypeInfo, !idxState.hasIndex);
onIndexToggle?.(column.columnName, !idxState.hasIndex);
}}
title="Index 토글"
>