Refactor DbKeyDetailTab to integrate Redis data type editors for list, hash, zset, set, and stream

This commit is contained in:
Stela Augustinova
2025-12-19 15:40:09 +01:00
parent bcff01b0bf
commit 7ff84a9932

View File

@@ -30,6 +30,11 @@
import InputTextModal from '../modals/InputTextModal.svelte'; import InputTextModal from '../modals/InputTextModal.svelte';
import _ from 'lodash'; import _ from 'lodash';
import DbKeyItemDetail from '../dbkeyvalue/DbKeyItemDetail.svelte'; import DbKeyItemDetail from '../dbkeyvalue/DbKeyItemDetail.svelte';
import DbKeyValueListEdit from '../dbkeyvalue/DbKeyValueListEdit.svelte';
import DbKeyValueHashEdit from '../dbkeyvalue/DbKeyValueHashEdit.svelte';
import DbKeyValueZSetEdit from '../dbkeyvalue/DbKeyValueZSetEdit.svelte';
import DbKeyValueSetEdit from '../dbkeyvalue/DbKeyValueSetEdit.svelte';
import DbKeyValueStreamEdit from '../dbkeyvalue/DbKeyValueStreamEdit.svelte';
import DbKeyAddItemModal from '../modals/DbKeyAddItemModal.svelte'; import DbKeyAddItemModal from '../modals/DbKeyAddItemModal.svelte';
import ErrorMessageModal from '../modals/ErrorMessageModal.svelte'; import ErrorMessageModal from '../modals/ErrorMessageModal.svelte';
import { changeTab } from '../utility/common'; import { changeTab } from '../utility/common';
@@ -57,6 +62,7 @@
} }
let currentRow; let currentRow;
let showAddForm = false;
$: key = $activeDbKeysStore[`${conid}:${database}`]; $: key = $activeDbKeysStore[`${conid}:${database}`];
let refreshToken = 0; let refreshToken = 0;
@@ -236,15 +242,69 @@
{changeSetRedis} {changeSetRedis}
onChangeSelected={row => { onChangeSelected={row => {
currentRow = row; currentRow = row;
showAddForm = false;
}} }}
modifyRow={row => getDisplayRow(row, keyInfo)} modifyRow={row => getDisplayRow(row, keyInfo)}
/> />
</svelte:fragment> </svelte:fragment>
<svelte:fragment slot="2"> <svelte:fragment slot="2">
<DbKeyItemDetail {#if showAddForm}
dbKeyFields={keyInfo.keyType.dbKeyFields} {#if keyInfo.type === 'list'}
item={getDisplayRow(currentRow, keyInfo)} <DbKeyValueListEdit
onChangeItem={item => { dbKeyFields={keyInfo.keyType.dbKeyFields}
item={null}
keyColumn={null}
onChangeItem={item => {
console.log('Add item:', item);
showAddForm = false;
}}
/>
{:else if keyInfo.type === 'hash'}
<DbKeyValueHashEdit
dbKeyFields={keyInfo.keyType.dbKeyFields}
item={null}
keyColumn={null}
onChangeItem={item => {
console.log('Add item:', item);
showAddForm = false;
}}
/>
{:else if keyInfo.type === 'zset'}
<DbKeyValueZSetEdit
dbKeyFields={keyInfo.keyType.dbKeyFields}
item={null}
keyColumn={null}
onChangeItem={item => {
console.log('Add item:', item);
showAddForm = false;
}}
/>
{:else if keyInfo.type === 'set'}
<DbKeyValueSetEdit
dbKeyFields={keyInfo.keyType.dbKeyFields}
item={null}
keyColumn={null}
onChangeItem={item => {
console.log('Add item:', item);
showAddForm = false;
}}
/>
{:else if keyInfo.type === 'stream'}
<DbKeyValueStreamEdit
dbKeyFields={keyInfo.keyType.dbKeyFields}
item={null}
keyColumn={null}
onChangeItem={item => {
console.log('Add item:', item);
showAddForm = false;
}}
/>
{/if}
{:else}
<DbKeyItemDetail
dbKeyFields={keyInfo.keyType.dbKeyFields}
item={getDisplayRow(currentRow, keyInfo)}
onChangeItem={item => {
const existingChange = changeSetRedis.changes.find( const existingChange = changeSetRedis.changes.find(
c => c.key === keyInfo.key && c.type === keyInfo.type c => c.key === keyInfo.key && c.type === keyInfo.type
); );
@@ -290,7 +350,8 @@
addOrUpdateChange(zsetChange); addOrUpdateChange(zsetChange);
} }
}} }}
/> />
{/if}
</svelte:fragment> </svelte:fragment>
</VerticalSplitter> </VerticalSplitter>
{:else} {:else}