refactor: introduce dedicated identifier types for improved clarity and type safety
This commit is contained in:
@@ -29,8 +29,7 @@ import '../styles/workspace/workspace-layout.css';
|
||||
import '../styles/workspace/workspace-items.css';
|
||||
import '../styles/workspace/workspace-cards.css';
|
||||
import { useWorkspaceSelectionContext } from '../app/WorkspaceSelectionContext';
|
||||
|
||||
type Identifier = string | number;
|
||||
import type { DocumentId, Identifier } from '../types/identifiers';
|
||||
|
||||
type TagLike = { id?: Identifier | null; label?: string; color?: string | null } | null;
|
||||
type DocumentLinkLike = { url?: string | null; mimeType?: string | null };
|
||||
@@ -79,7 +78,7 @@ interface DocumentSizeInfo {
|
||||
}
|
||||
|
||||
interface PreviewMetadataEntry {
|
||||
docId: string;
|
||||
docId: DocumentId;
|
||||
width: number;
|
||||
height: number;
|
||||
}
|
||||
@@ -225,7 +224,7 @@ const DesktopWorkspace: React.FC<DesktopWorkspaceProps> = ({
|
||||
const syntheticEvent = event || ({
|
||||
metaKey: true,
|
||||
ctrlKey: true,
|
||||
preventDefault: () => {},
|
||||
preventDefault: () => { },
|
||||
} as unknown as PointerEvent);
|
||||
docIds.forEach((id) => {
|
||||
const key = getDocRowKey(id);
|
||||
@@ -354,7 +353,7 @@ const DesktopWorkspace: React.FC<DesktopWorkspaceProps> = ({
|
||||
engine.recalcVisibleDocIds();
|
||||
}, [engine]);
|
||||
|
||||
const setDraggingId = useCallback((value: string | number | null) => {
|
||||
const setDraggingId = useCallback((value: string | null) => {
|
||||
engine.setDraggingId(value);
|
||||
}, [engine]);
|
||||
|
||||
@@ -686,7 +685,7 @@ const DesktopWorkspace: React.FC<DesktopWorkspaceProps> = ({
|
||||
},
|
||||
[resolvePreviewDimensions],
|
||||
);
|
||||
|
||||
|
||||
|
||||
useEffect(() => {
|
||||
if (draggingId && !items.some((doc) => String(doc.id) === draggingId)) {
|
||||
@@ -1072,8 +1071,8 @@ function DesktopWorkspaceView({
|
||||
const dragging = docKey ? draggingId === docKey : false;
|
||||
const docTagKeys = Array.isArray(doc?.tags)
|
||||
? doc.tags
|
||||
.map((tag) => (tag?.id != null ? String(tag.id) : null))
|
||||
.filter((id): id is string => Boolean(id))
|
||||
.map((tag) => (tag?.id != null ? String(tag.id) : null))
|
||||
.filter((id): id is string => Boolean(id))
|
||||
: [];
|
||||
const matchesFilter =
|
||||
activeTagSet.size === 0 || docTagKeys.some((key) => activeTagSet.has(key));
|
||||
|
||||
Reference in New Issue
Block a user