mirror of
https://github.com/wanderer-industries/wanderer
synced 2025-12-12 02:35:42 +00:00
feat(Signatures): Keep 'Lazy delete' enabled setting
This commit is contained in:
@@ -27,15 +27,17 @@ import { PrimeIcons } from 'primereact/api';
|
|||||||
import { useMapRootState } from '@/hooks/Mapper/mapRootProvider';
|
import { useMapRootState } from '@/hooks/Mapper/mapRootProvider';
|
||||||
import { CheckboxChangeEvent } from 'primereact/checkbox';
|
import { CheckboxChangeEvent } from 'primereact/checkbox';
|
||||||
|
|
||||||
const SIGNATURE_SETTINGS_KEY = 'wanderer_system_signature_settings_v5';
|
const SIGNATURE_SETTINGS_KEY = 'wanderer_system_signature_settings_v5_2';
|
||||||
export const SHOW_DESCRIPTION_COLUMN_SETTING = 'show_description_column_setting';
|
export const SHOW_DESCRIPTION_COLUMN_SETTING = 'show_description_column_setting';
|
||||||
export const SHOW_UPDATED_COLUMN_SETTING = 'SHOW_UPDATED_COLUMN_SETTING';
|
export const SHOW_UPDATED_COLUMN_SETTING = 'SHOW_UPDATED_COLUMN_SETTING';
|
||||||
export const LAZY_DELETE_SIGNATURES_SETTING = 'LAZY_DELETE_SIGNATURES_SETTING';
|
export const LAZY_DELETE_SIGNATURES_SETTING = 'LAZY_DELETE_SIGNATURES_SETTING';
|
||||||
|
export const KEEP_LAZY_DELETE_SETTING = 'KEEP_LAZY_DELETE_ENABLED_SETTING';
|
||||||
|
|
||||||
const settings: Setting[] = [
|
const settings: Setting[] = [
|
||||||
{ key: SHOW_UPDATED_COLUMN_SETTING, name: 'Show Updated Column', value: false, isFilter: false },
|
{ key: SHOW_UPDATED_COLUMN_SETTING, name: 'Show Updated Column', value: false, isFilter: false },
|
||||||
{ key: SHOW_DESCRIPTION_COLUMN_SETTING, name: 'Show Description Column', value: false, isFilter: false },
|
{ key: SHOW_DESCRIPTION_COLUMN_SETTING, name: 'Show Description Column', value: false, isFilter: false },
|
||||||
{ key: LAZY_DELETE_SIGNATURES_SETTING, name: 'Lazy Delete Signatures', value: false, isFilter: false },
|
{ key: LAZY_DELETE_SIGNATURES_SETTING, name: 'Lazy Delete Signatures', value: false, isFilter: false },
|
||||||
|
{ key: KEEP_LAZY_DELETE_SETTING, name: 'Keep "Lazy Delete" Enabled', value: false, isFilter: false },
|
||||||
{ key: COSMIC_ANOMALY, name: 'Show Anomalies', value: true, isFilter: true },
|
{ key: COSMIC_ANOMALY, name: 'Show Anomalies', value: true, isFilter: true },
|
||||||
{ key: COSMIC_SIGNATURE, name: 'Show Cosmic Signatures', value: true, isFilter: true },
|
{ key: COSMIC_SIGNATURE, name: 'Show Cosmic Signatures', value: true, isFilter: true },
|
||||||
{ key: DEPLOYABLE, name: 'Show Deployables', value: true, isFilter: true },
|
{ key: DEPLOYABLE, name: 'Show Deployables', value: true, isFilter: true },
|
||||||
@@ -77,10 +79,10 @@ export const SystemSignatures = () => {
|
|||||||
setVisible(false);
|
setVisible(false);
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const handleLazyDeleteChange = useCallback((event: CheckboxChangeEvent) => {
|
const handleLazyDeleteChange = useCallback((value: boolean) => {
|
||||||
setSettings(settings => {
|
setSettings(settings => {
|
||||||
const lazyDelete = settings.find(setting => setting.key === LAZY_DELETE_SIGNATURES_SETTING)!;
|
const lazyDelete = settings.find(setting => setting.key === LAZY_DELETE_SIGNATURES_SETTING)!;
|
||||||
lazyDelete.value = !!event.checked;
|
lazyDelete.value = value;
|
||||||
localStorage.setItem(SIGNATURE_SETTINGS_KEY, JSON.stringify(settings));
|
localStorage.setItem(SIGNATURE_SETTINGS_KEY, JSON.stringify(settings));
|
||||||
return [...settings];
|
return [...settings];
|
||||||
});
|
});
|
||||||
@@ -107,7 +109,7 @@ export const SystemSignatures = () => {
|
|||||||
label={'Lazy delete'}
|
label={'Lazy delete'}
|
||||||
value={lazyDeleteValue}
|
value={lazyDeleteValue}
|
||||||
classNameLabel="text-stone-400 hover:text-stone-200 transition duration-300"
|
classNameLabel="text-stone-400 hover:text-stone-200 transition duration-300"
|
||||||
onChange={handleLazyDeleteChange}
|
onChange={(event: CheckboxChangeEvent) => handleLazyDeleteChange(!!event.checked)}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<WdImgButton
|
<WdImgButton
|
||||||
@@ -149,7 +151,7 @@ export const SystemSignatures = () => {
|
|||||||
System is not selected
|
System is not selected
|
||||||
</div>
|
</div>
|
||||||
) : (
|
) : (
|
||||||
<SystemSignaturesContent systemId={systemId} settings={settings} />
|
<SystemSignaturesContent systemId={systemId} settings={settings} onLazyDeleteChange={handleLazyDeleteChange} />
|
||||||
)}
|
)}
|
||||||
{visible && (
|
{visible && (
|
||||||
<SystemSignatureSettingsDialog
|
<SystemSignatureSettingsDialog
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ import {
|
|||||||
SHOW_DESCRIPTION_COLUMN_SETTING,
|
SHOW_DESCRIPTION_COLUMN_SETTING,
|
||||||
SHOW_UPDATED_COLUMN_SETTING,
|
SHOW_UPDATED_COLUMN_SETTING,
|
||||||
LAZY_DELETE_SIGNATURES_SETTING,
|
LAZY_DELETE_SIGNATURES_SETTING,
|
||||||
|
KEEP_LAZY_DELETE_SETTING,
|
||||||
} from '@/hooks/Mapper/components/mapInterface/widgets/SystemSignatures';
|
} from '@/hooks/Mapper/components/mapInterface/widgets/SystemSignatures';
|
||||||
type SystemSignaturesSortSettings = {
|
type SystemSignaturesSortSettings = {
|
||||||
sortField: string;
|
sortField: string;
|
||||||
@@ -55,6 +56,7 @@ interface SystemSignaturesContentProps {
|
|||||||
hideLinkedSignatures?: boolean;
|
hideLinkedSignatures?: boolean;
|
||||||
selectable?: boolean;
|
selectable?: boolean;
|
||||||
onSelect?: (signature: SystemSignature) => void;
|
onSelect?: (signature: SystemSignature) => void;
|
||||||
|
onLazyDeleteChange?: (value: boolean) => void;
|
||||||
}
|
}
|
||||||
export const SystemSignaturesContent = ({
|
export const SystemSignaturesContent = ({
|
||||||
systemId,
|
systemId,
|
||||||
@@ -62,6 +64,7 @@ export const SystemSignaturesContent = ({
|
|||||||
hideLinkedSignatures,
|
hideLinkedSignatures,
|
||||||
selectable,
|
selectable,
|
||||||
onSelect,
|
onSelect,
|
||||||
|
onLazyDeleteChange,
|
||||||
}: SystemSignaturesContentProps) => {
|
}: SystemSignaturesContentProps) => {
|
||||||
const { outCommand } = useMapRootState();
|
const { outCommand } = useMapRootState();
|
||||||
|
|
||||||
@@ -90,6 +93,10 @@ export const SystemSignaturesContent = ({
|
|||||||
return settings.find(setting => setting.key === LAZY_DELETE_SIGNATURES_SETTING)?.value ?? false;
|
return settings.find(setting => setting.key === LAZY_DELETE_SIGNATURES_SETTING)?.value ?? false;
|
||||||
}, [settings]);
|
}, [settings]);
|
||||||
|
|
||||||
|
const keepLazyDeleteValue = useMemo(() => {
|
||||||
|
return settings.find(setting => setting.key === KEEP_LAZY_DELETE_SETTING)!.value;
|
||||||
|
}, [settings]);
|
||||||
|
|
||||||
const handleResize = useCallback(() => {
|
const handleResize = useCallback(() => {
|
||||||
if (tableRef.current) {
|
if (tableRef.current) {
|
||||||
const tableWidth = tableRef.current.offsetWidth;
|
const tableWidth = tableRef.current.offsetWidth;
|
||||||
@@ -212,6 +219,10 @@ export const SystemSignaturesContent = ({
|
|||||||
);
|
);
|
||||||
|
|
||||||
handleUpdateSignatures(newSignatures, !lazyDeleteValue);
|
handleUpdateSignatures(newSignatures, !lazyDeleteValue);
|
||||||
|
|
||||||
|
if (lazyDeleteValue && !keepLazyDeleteValue) {
|
||||||
|
onLazyDeleteChange?.(false);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleEnterRow = useCallback(
|
const handleEnterRow = useCallback(
|
||||||
@@ -238,7 +249,7 @@ export const SystemSignaturesContent = ({
|
|||||||
|
|
||||||
handlePaste(clipboardContent.text);
|
handlePaste(clipboardContent.text);
|
||||||
setClipboardContent(null);
|
setClipboardContent(null);
|
||||||
}, [clipboardContent, selectable, lazyDeleteValue]);
|
}, [clipboardContent, selectable, lazyDeleteValue, keepLazyDeleteValue]);
|
||||||
|
|
||||||
useHotkey(true, ['a'], handleSelectAll);
|
useHotkey(true, ['a'], handleSelectAll);
|
||||||
useHotkey(false, ['Backspace', 'Delete'], handleDeleteSelected);
|
useHotkey(false, ['Backspace', 'Delete'], handleDeleteSelected);
|
||||||
|
|||||||
Reference in New Issue
Block a user