table edit fixes

This commit is contained in:
Jan Prochazka
2021-09-09 13:42:13 +02:00
parent d348ef21db
commit 61ec9e4365
4 changed files with 254 additions and 245 deletions

View File

@@ -133,14 +133,14 @@ export default function useEditorData({ tabid, reloadToken = 0, loadFromArgs = n
}; };
const clearEditorData = async () => { const clearEditorData = async () => {
await localforage.removeItem(localStorageKey);
localStorage.removeItem(localStorageKey);
editorState.update(x => ({ editorState.update(x => ({
...x, ...x,
value: null, value: null,
errorMessage: null, errorMessage: null,
isLoading: false, isLoading: false,
})); }));
await localforage.removeItem(localStorageKey);
localStorage.removeItem(localStorageKey);
}; };
onMount(() => { onMount(() => {

View File

@@ -37,10 +37,10 @@
constraintType, constraintType,
}; };
} }
</script> </script>
<ModalBase {...$$restProps}> <FormProvider>
<ModalBase {...$$restProps}>
<svelte:fragment slot="header" <svelte:fragment slot="header"
>{constraintInfo ? `Edit ${constraintLabel}` : `Add ${constraintLabel}`}</svelte:fragment >{constraintInfo ? `Edit ${constraintLabel}` : `Add ${constraintLabel}`}</svelte:fragment
> >
@@ -120,7 +120,7 @@
</div> </div>
<svelte:fragment slot="footer"> <svelte:fragment slot="footer">
<FormStyledButton <FormSubmit
value={'Save'} value={'Save'}
on:click={() => { on:click={() => {
closeCurrentModal(); closeCurrentModal();
@@ -144,7 +144,8 @@
/> />
{/if} {/if}
</svelte:fragment> </svelte:fragment>
</ModalBase> </ModalBase>
</FormProvider>
<style> <style>
.row { .row {
@@ -161,5 +162,4 @@
align-self: center; align-self: center;
text-align: right; text-align: right;
} }
</style> </style>

View File

@@ -62,7 +62,8 @@
} }
</script> </script>
<ModalBase {...$$restProps}> <FormProvider>
<ModalBase {...$$restProps}>
<svelte:fragment slot="header">{constraintInfo ? `Edit foreign key` : `Add foreign key`}</svelte:fragment> <svelte:fragment slot="header">{constraintInfo ? `Edit foreign key` : `Add foreign key`}</svelte:fragment>
<div class="largeFormMarker"> <div class="largeFormMarker">
@@ -195,7 +196,7 @@
</div> </div>
<svelte:fragment slot="footer"> <svelte:fragment slot="footer">
<FormStyledButton <FormSubmit
value={'Save'} value={'Save'}
on:click={() => { on:click={() => {
closeCurrentModal(); closeCurrentModal();
@@ -219,7 +220,8 @@
/> />
{/if} {/if}
</svelte:fragment> </svelte:fragment>
</ModalBase> </ModalBase>
</FormProvider>
<style> <style>
.row { .row {

View File

@@ -66,7 +66,7 @@
const { editorState, editorValue, setEditorData, clearEditorData } = useEditorData({ tabid }); const { editorState, editorValue, setEditorData, clearEditorData } = useEditorData({ tabid });
$: showTable = $editorValue || tableInfoWithPairingId; $: showTable = $editorValue ? $editorValue.current : tableInfoWithPairingId;
export function canSave() { export function canSave() {
return objectTypeField == 'tables' && !!$editorValue; return objectTypeField == 'tables' && !!$editorValue;
@@ -74,7 +74,7 @@
export function save() { export function save() {
const driver = findEngineDriver($connection, $extensions); const driver = findEngineDriver($connection, $extensions);
const sql = getAlterTableScript(tableInfoWithPairingId, $editorValue, {}, $dbInfo, driver); const sql = getAlterTableScript($editorValue.base, $editorValue.current, {}, $dbInfo, driver);
showModal(ConfirmSqlModal, { showModal(ConfirmSqlModal, {
sql, sql,
@@ -114,9 +114,16 @@
dbInfo={$dbInfo} dbInfo={$dbInfo}
setTableInfo={objectTypeField == 'tables' setTableInfo={objectTypeField == 'tables'
? tableInfoUpdater => ? tableInfoUpdater =>
setEditorData(tbl => { setEditorData(tbl =>
if (tbl) return tableInfoUpdater(tbl); tbl
return tableInfoUpdater(tableInfoWithPairingId); ? {
}) base: tbl.base,
current: tableInfoUpdater(tbl.current),
}
: {
base: tableInfoWithPairingId,
current: tableInfoUpdater(tableInfoWithPairingId),
}
)
: null} : null}
/> />