Skip to content

Commit 311c400

Browse files
committed
Move the edit mode cell to the sheet context instead of local CellWrapper state
1 parent c2cdb99 commit 311c400

File tree

14 files changed

+60
-4
lines changed

14 files changed

+60
-4
lines changed

mathesar_ui/src/components/cell-fabric/CellFabric.svelte

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
| ((recordId: string, recordSummary: string) => void)
2121
| undefined = undefined;
2222
export let isActive = false;
23+
export let isEditMode = false;
2324
export let disabled = false;
2425
export let showAsSkeleton = false;
2526
export let horizontalAlignment: HorizontalAlignment | undefined = undefined;
@@ -47,6 +48,7 @@
4748
{...props}
4849
{columnFabric}
4950
{isActive}
51+
{isEditMode}
5052
{disabled}
5153
{isIndependentOfSheet}
5254
{horizontalAlignment}
@@ -61,6 +63,8 @@
6163
bind:value
6264
on:movementKeyDown
6365
on:update
66+
on:enterEditMode
67+
on:exitEditMode
6468
/>
6569

6670
<div class="loader">

mathesar_ui/src/components/cell-fabric/data-types/components/SteppedInputCell.svelte

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
export let isActive: Props['isActive'];
2525
export let value: Props['value'];
2626
export let disabled: Props['disabled'];
27+
export let isEditMode = false;
2728
export let multiLineTruncate = false;
2829
export let formatValue: CellValueFormatter<Value> | undefined = undefined;
2930
export let horizontalAlignment: HorizontalAlignment | undefined = undefined;
@@ -34,7 +35,6 @@
3435
export let useTabularNumbers = false;
3536
3637
let cellRef: HTMLElement;
37-
let isEditMode = false;
3838
let lastSavedValue: Value | undefined | null = undefined;
3939
4040
$: formattedValue = formatValue?.(value) ?? value;
@@ -59,12 +59,12 @@
5959
6060
function setModeToEdit() {
6161
if (!disabled) {
62-
isEditMode = true;
62+
dispatch('enterEditMode');
6363
}
6464
}
6565
6666
function resetEditMode() {
67-
isEditMode = false;
67+
dispatch('exitEditMode');
6868
}
6969
7070
function revertValue() {

mathesar_ui/src/components/cell-fabric/data-types/components/date-time/DateTimeCell.svelte

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
export let isActive: $$Props['isActive'];
1010
export let value: $$Props['value'];
1111
export let disabled: $$Props['disabled'];
12+
export let isEditMode = false;
1213
export let isIndependentOfSheet: $$Props['isIndependentOfSheet'];
1314
export let showTruncationPopover: $$Props['showTruncationPopover'] = false;
1415
export let type: $$Props['type'];
@@ -22,6 +23,7 @@
2223
<SteppedInputCell
2324
bind:value
2425
{isActive}
26+
{isEditMode}
2527
{disabled}
2628
highlightSubstringMatches={false}
2729
{isIndependentOfSheet}
@@ -33,6 +35,8 @@
3335
on:movementKeyDown
3436
on:mouseenter
3537
on:update
38+
on:enterEditMode
39+
on:exitEditMode
3640
>
3741
<DateTimeInput
3842
focusOnMount={true}

mathesar_ui/src/components/cell-fabric/data-types/components/formatted-input/FormattedInputCell.svelte

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
export let isActive: $$Props['isActive'];
1010
export let value: $$Props['value'];
1111
export let disabled: $$Props['disabled'];
12+
export let isEditMode = false;
1213
export let isIndependentOfSheet: $$Props['isIndependentOfSheet'];
1314
export let showTruncationPopover: $$Props['showTruncationPopover'] = false;
1415
export let formatter: $$Props['formatter'];
@@ -19,6 +20,7 @@
1920
<SteppedInputCell
2021
bind:value
2122
{isActive}
23+
{isEditMode}
2224
{disabled}
2325
{isIndependentOfSheet}
2426
{showTruncationPopover}
@@ -30,6 +32,8 @@
3032
on:movementKeyDown
3133
on:mouseenter
3234
on:update
35+
on:enterEditMode
36+
on:exitEditMode
3337
>
3438
<FormattedInput
3539
focusOnMount={true}

mathesar_ui/src/components/cell-fabric/data-types/components/money/MoneyCell.svelte

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
export let isActive: $$Props['isActive'];
1010
export let value: $$Props['value'];
1111
export let disabled: $$Props['disabled'];
12+
export let isEditMode = false;
1213
export let searchValue: $$Props['searchValue'] = undefined;
1314
export let formatterOptions: $$Props['formatterOptions'];
1415
export let formatForDisplay: $$Props['formatForDisplay'];
@@ -19,6 +20,7 @@
1920
<SteppedInputCell
2021
bind:value
2122
{isActive}
23+
{isEditMode}
2224
{disabled}
2325
{searchValue}
2426
{isIndependentOfSheet}
@@ -31,6 +33,8 @@
3133
on:movementKeyDown
3234
on:mouseenter
3335
on:update
36+
on:enterEditMode
37+
on:exitEditMode
3438
>
3539
<MoneyCellInput
3640
focusOnMount={true}

mathesar_ui/src/components/cell-fabric/data-types/components/number/NumberCell.svelte

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
export let isActive: $$Props['isActive'];
1313
export let value: $$Props['value'];
1414
export let disabled: $$Props['disabled'];
15+
export let isEditMode = false;
1516
export let searchValue: $$Props['searchValue'] = undefined;
1617
export let formatterOptions: $$Props['formatterOptions'];
1718
export let horizontalAlignment: HorizontalAlignment = 'right';
@@ -23,6 +24,7 @@
2324
<SteppedInputCell
2425
bind:value
2526
{isActive}
27+
{isEditMode}
2628
{disabled}
2729
{isIndependentOfSheet}
2830
{showTruncationPopover}
@@ -35,6 +37,8 @@
3537
on:movementKeyDown
3638
on:mouseenter
3739
on:update
40+
on:enterEditMode
41+
on:exitEditMode
3842
>
3943
<NumberCellInput
4044
focusOnMount={true}

mathesar_ui/src/components/cell-fabric/data-types/components/textarea/TextAreaCell.svelte

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
export let isActive: $$Props['isActive'];
1111
export let value: $$Props['value'] = undefined;
1212
export let disabled: $$Props['disabled'];
13+
export let isEditMode = false;
1314
export let searchValue: $$Props['searchValue'] = undefined;
1415
export let isIndependentOfSheet: $$Props['isIndependentOfSheet'];
1516
export let showTruncationPopover: $$Props['showTruncationPopover'] = false;
@@ -33,6 +34,7 @@
3334
<SteppedInputCell
3435
bind:value
3536
{isActive}
37+
{isEditMode}
3638
{disabled}
3739
{searchValue}
3840
{isIndependentOfSheet}
@@ -43,6 +45,8 @@
4345
on:movementKeyDown
4446
on:mouseenter
4547
on:update
48+
on:enterEditMode
49+
on:exitEditMode
4650
>
4751
<TextArea
4852
focusOnMount={true}

mathesar_ui/src/components/cell-fabric/data-types/components/textbox/TextBoxCell.svelte

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
export let isActive: $$Props['isActive'];
1010
export let value: $$Props['value'] = undefined;
1111
export let disabled: $$Props['disabled'];
12+
export let isEditMode = false;
1213
export let searchValue: $$Props['searchValue'] = undefined;
1314
export let isIndependentOfSheet: $$Props['isIndependentOfSheet'];
1415
export let showTruncationPopover: $$Props['showTruncationPopover'] = false;
@@ -20,6 +21,7 @@
2021
<SteppedInputCell
2122
bind:value
2223
{isActive}
24+
{isEditMode}
2325
{disabled}
2426
{searchValue}
2527
{isIndependentOfSheet}
@@ -29,6 +31,8 @@
2931
on:movementKeyDown
3032
on:mouseenter
3133
on:update
34+
on:enterEditMode
35+
on:exitEditMode
3236
>
3337
<TextInput
3438
focusOnMount={true}

mathesar_ui/src/components/cell-fabric/data-types/components/typeDefinitions.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ export type CellValueFormatter<T> = (
3737
export interface CellTypeProps<Value> {
3838
value: Value | null | undefined;
3939
isActive: boolean;
40+
isEditMode?: boolean;
4041
disabled: boolean;
4142
searchValue?: unknown;
4243
isProcessing: boolean;

mathesar_ui/src/components/cell-fabric/data-types/components/uri/UriCell.svelte

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
export let isActive: $$Props['isActive'];
1616
export let value: $$Props['value'] = undefined;
1717
export let disabled: $$Props['disabled'];
18+
export let isEditMode = false;
1819
export let searchValue: $$Props['searchValue'] = undefined;
1920
export let isIndependentOfSheet: $$Props['isIndependentOfSheet'];
2021
export let showTruncationPopover: $$Props['showTruncationPopover'] = false;
@@ -23,6 +24,7 @@
2324
<SteppedInputCell
2425
bind:value
2526
{isActive}
27+
{isEditMode}
2628
{disabled}
2729
{searchValue}
2830
{isIndependentOfSheet}
@@ -32,6 +34,8 @@
3234
on:movementKeyDown
3335
on:mouseenter
3436
on:update
37+
on:enterEditMode
38+
on:exitEditMode
3539
>
3640
<span slot="content" let:matchParts>
3741
<CellValue {value}>

0 commit comments

Comments
 (0)