Skip to content
This repository was archived by the owner on Jul 28, 2025. It is now read-only.

Commit 90e2098

Browse files
committed
undo. Rerender is a bad idea
1 parent bce6bcb commit 90e2098

File tree

10 files changed

+11
-60
lines changed

10 files changed

+11
-60
lines changed

src/cdm/HeaderModel.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ColumnOrderState, ColumnResizeMode, Header, Table } from "@tanstack/react-table";
1+
import { ColumnOrderState, Header, Table } from "@tanstack/react-table";
22
import { DatabaseHeaderProps, RowDataType, TableColumn } from "cdm/FolderModel";
33

44
export type HeaderMenuProps = {

src/cdm/TableStateInterface.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,17 +47,11 @@ export interface RowTemplateState {
4747
update: (template: string) => void;
4848
}
4949

50-
export interface RenderState {
51-
enableRender: boolean;
52-
alterEnableRender: (enableRender: boolean) => void;
53-
}
54-
5550
export interface TableStateInterface {
5651
initialState: UseBoundStore<StoreApi<InitialState>>;
5752
configState: UseBoundStore<StoreApi<ConfigState>>;
5853
rowTemplate: UseBoundStore<StoreApi<RowTemplateState>>;
5954
data: UseBoundStore<StoreApi<DataState>>;
6055
sorting: UseBoundStore<StoreApi<ColumnSortingState>>;
6156
columns: UseBoundStore<StoreApi<ColumnsState>>;
62-
renderState: UseBoundStore<StoreApi<RenderState>>;
6357
}

src/components/HeaderMenu.tsx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,6 @@ const HeaderMenu = (headerMenuProps: HeaderMenuProps) => {
2222
(state) => state.ddbbConfig
2323
);
2424

25-
const alterEnableRender = table.options.meta.tableState.renderState(
26-
(store) => store.alterEnableRender
27-
);
2825
/** Header props */
2926
const {
3027
propertyIcon,
@@ -129,7 +126,6 @@ const HeaderMenu = (headerMenuProps: HeaderMenuProps) => {
129126
);
130127

131128
alterColumnLabel(column.columnDef as TableColumn, labelState);
132-
alterEnableRender(true);
133129
}
134130

135131
function handleKeyDown(e: any) {

src/components/Table.tsx

Lines changed: 9 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import {
2020
TableColumn,
2121
RowTemplateOption,
2222
} from "cdm/FolderModel";
23-
import { DatabaseView } from "DatabaseView";
2423
import StateManager from "StateManager";
2524
import { getNormalizedPath } from "helpers/VaultManagement";
2625
import {
@@ -37,7 +36,7 @@ import { c } from "helpers/StylesHelper";
3736
import { HeaderNavBar } from "components/NavBar";
3837
import TableHeader from "components/TableHeader";
3938
import CustomTemplateSelectorStyles from "components/styles/RowTemplateStyles";
40-
import Select, { ActionMeta, OnChangeValue } from "react-select";
39+
import Select, { OnChangeValue } from "react-select";
4140
import { DndProvider } from "react-dnd";
4241
import { HTML5Backend } from "react-dnd-html5-backend";
4342
import TableCell from "components/TableCell";
@@ -69,24 +68,11 @@ export function Table(tableData: TableDataType) {
6968
store.global,
7069
store.alterConfig,
7170
]);
72-
const [enableRender, alterEnableRender] = tableStore.renderState((store) => [
73-
store.enableRender,
74-
store.alterEnableRender,
75-
]);
71+
7672
/** Plugin services */
7773
const stateManager: StateManager = tableData.stateManager;
7874
const filePath = stateManager.file.path;
7975

80-
/** Reducer */
81-
const rerender = React.useReducer(() => ({}), {})[1];
82-
React.useEffect(() => {
83-
if (enableRender) {
84-
console.log("=> Table. rerender");
85-
alterEnableRender(false);
86-
rerender();
87-
}
88-
});
89-
9076
/** Table services */
9177
// Sorting
9278
const [sorting, onSortingChange] = tableStore.sorting((store) => [
@@ -101,6 +87,9 @@ export function Table(tableData: TableDataType) {
10187
);
10288
const [persistSizingTimeout, setPersistSizingTimeout] = React.useState(null);
10389
// Drag and drop
90+
const [columnOrder, setColumnOrder] = React.useState<ColumnOrderState>(
91+
columns.map((c) => c.id)
92+
);
10493
const findColumn = React.useCallback(
10594
(id: string) => {
10695
const findedColumn = columns.filter((c) => `${c.id}` === id)[0];
@@ -109,10 +98,7 @@ export function Table(tableData: TableDataType) {
10998
index: columns.indexOf(findedColumn),
11099
};
111100
},
112-
[columns]
113-
);
114-
const [columnOrder, setColumnOrder] = React.useState<ColumnOrderState>(
115-
columns.map((c) => c.id)
101+
[columnOrder]
116102
);
117103
// Niveling number of columns
118104
if (columnOrder.length !== columns.length) {
@@ -187,7 +173,7 @@ export function Table(tableData: TableDataType) {
187173
);
188174

189175
const table: Table<RowDataType> = useReactTable({
190-
columns,
176+
columns: columns,
191177
data: rows,
192178
columnResizeMode: ResizeConfiguration.RESIZE_MODE,
193179
state: {
@@ -239,6 +225,7 @@ export function Table(tableData: TableDataType) {
239225
debugHeaders: global.enable_debug_mode,
240226
debugColumns: global.enable_debug_mode,
241227
});
228+
242229
// Manage input of new row
243230
const [inputNewRow, setInputNewRow] = React.useState("");
244231
const newRowRef = React.useRef(null);
@@ -263,6 +250,7 @@ export function Table(tableData: TableDataType) {
263250
current_row_template: settingsValue,
264251
});
265252
}
253+
266254
LOGGER.debug(`<= Table`);
267255
return (
268256
<>

src/components/headerActions/handlers/types/NumberTypeHeaderAction.tsx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,6 @@ function numberTypeComponent(headerActionResponse: HeaderActionResponse) {
3131
const ddbbConfig = table.options.meta.tableState.configState(
3232
(state) => state.ddbbConfig
3333
);
34-
const alterEnableRender = table.options.meta.tableState.renderState(
35-
(store) => store.alterEnableRender
36-
);
3734

3835
const numberOnClick = (e: any) => {
3936
hooks.setShowType(false);
@@ -44,7 +41,6 @@ function numberTypeComponent(headerActionResponse: HeaderActionResponse) {
4441
ddbbConfig
4542
);
4643
alterColumnType(column.columnDef as TableColumn, InputType.NUMBER);
47-
alterEnableRender(true);
4844
};
4945
return headerTypeComponent({
5046
onClick: numberOnClick,

src/components/headerActions/handlers/types/TagsTypeHeaderAction.tsx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,6 @@ function tagsTypeComponent(headerActionResponse: HeaderActionResponse) {
3232
const ddbbConfig = table.options.meta.tableState.configState(
3333
(state) => state.ddbbConfig
3434
);
35-
const alterEnableRender = table.options.meta.tableState.renderState(
36-
(store) => store.alterEnableRender
37-
);
3835

3936
const tagsOnClick = (e: any) => {
4037
hooks.setShowType(false);
@@ -45,7 +42,6 @@ function tagsTypeComponent(headerActionResponse: HeaderActionResponse) {
4542
ddbbConfig
4643
);
4744
alterColumnType(column.columnDef as TableColumn, InputType.TAGS, rows);
48-
alterEnableRender(true);
4945
};
5046
return headerTypeComponent({
5147
onClick: tagsOnClick,

src/components/headerActions/handlers/types/TextTypeHeaderAction.tsx

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,6 @@ function textTypeComponent(headerActionResponse: HeaderActionResponse) {
3232
const ddbbConfig = table.options.meta.tableState.configState(
3333
(state) => state.ddbbConfig
3434
);
35-
const alterEnableRender = table.options.meta.tableState.renderState(
36-
(store) => store.alterEnableRender
37-
);
38-
3935
const tagsOnClick = (e: any) => {
4036
hooks.setShowType(false);
4137
hooks.setExpanded(false);
@@ -45,7 +41,6 @@ function textTypeComponent(headerActionResponse: HeaderActionResponse) {
4541
ddbbConfig
4642
);
4743
alterColumnType(column.columnDef as TableColumn, InputType.TEXT);
48-
alterEnableRender(true);
4944
};
5045

5146
return headerTypeComponent({

src/components/reducers/TableReducer.tsx

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import useConfigStore from "stateManagement/useConfigStore";
55
import useDataStore from "stateManagement/useDataStore";
66
import useInitialTypeStore from "stateManagement/useInitialTypeStore";
77
import useRowTemplateStore from "stateManagement/useRowTemplateStore";
8-
import useRenderStore from "stateManagement/userRenderStore";
98
import useSortingStore from "stateManagement/useSortingStore";
109

1110
function useTableStore(view: DatabaseView): TableStateInterface {
@@ -15,12 +14,10 @@ function useTableStore(view: DatabaseView): TableStateInterface {
1514
const rowTemplate = useRowTemplateStore(view);
1615
const sorting = useSortingStore(view);
1716
const columns = useColumnsStore(view);
18-
const render = useRenderStore();
1917
return {
2018
configState: config,
2119
initialState: initialType,
2220
rowTemplate: rowTemplate,
23-
renderState: render,
2421
data: data,
2522
sorting: sorting,
2623
columns: columns,

src/stateManagement/useColumnsStore.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import { dbTrim } from "helpers/StylesHelper";
1414
import create from "zustand";
1515

1616
const useColumnsStore = (view: DatabaseView) => {
17-
return create<ColumnsState>()((set) => ({
17+
return create<ColumnsState>()((set, get) => ({
1818
columns: view.columns,
1919
shadowColumns: view.shadowColumns,
2020
addToLeft: (column: TableColumn) =>

src/stateManagement/userRenderStore.tsx

Lines changed: 0 additions & 11 deletions
This file was deleted.

0 commit comments

Comments
 (0)