From b4b36ae0824956c04210d03022c281e536acdb51 Mon Sep 17 00:00:00 2001 From: cialloo Date: Mon, 27 Oct 2025 21:24:19 +0800 Subject: [PATCH] refactor: remove unused fileType and downloadUrl properties from ArchiveComponent and ArchiveNode --- src/blog/nodes/ArchiveComponent.tsx | 18 +++------ src/blog/nodes/ArchiveNode.tsx | 47 +----------------------- src/blog/plugins/DragDropPastePlugin.tsx | 4 +- 3 files changed, 7 insertions(+), 62 deletions(-) diff --git a/src/blog/nodes/ArchiveComponent.tsx b/src/blog/nodes/ArchiveComponent.tsx index 79ca27d..c8d9316 100644 --- a/src/blog/nodes/ArchiveComponent.tsx +++ b/src/blog/nodes/ArchiveComponent.tsx @@ -32,9 +32,7 @@ interface ArchiveComponentProps { nodeKey: NodeKey; fileName: string; fileSize?: number; - fileType?: string; fileKey?: string; - downloadUrl?: string; uploadProgress?: number; uploadError?: string; uploadId?: string; @@ -44,9 +42,7 @@ export default function ArchiveComponent({ nodeKey, fileName, fileSize, - fileType, fileKey, - downloadUrl, uploadProgress, uploadError, }: ArchiveComponentProps): JSX.Element { @@ -55,14 +51,11 @@ export default function ArchiveComponent({ const containerRef = useRef(null); const resolvedUrl = useMemo(() => { - if (downloadUrl) { - return downloadUrl; - } if (fileKey) { return getS3Url(fileKey); } return undefined; - }, [downloadUrl, fileKey]); + }, [fileKey]); const readableSize = useMemo(() => formatFileSize(fileSize), [fileSize]); const isUploading = uploadProgress !== undefined && uploadProgress < 100 && !uploadError; @@ -137,13 +130,12 @@ export default function ArchiveComponent({ setSelected(true); }} > -
ZIP
+
+ ZIP +
{fileName}
-
- {fileType || 'Archive'} - {readableSize ? ` • ${readableSize}` : ''} -
+
Archive{readableSize ? ` • ${readableSize}` : ''}
{resolvedUrl ? ( import('./ArchiveComponent')); export interface ArchivePayload { fileName: string; fileSize?: number; - fileType?: string; fileKey?: string; - downloadUrl?: string; uploadProgress?: number; uploadError?: string; uploadId?: string; @@ -35,18 +33,14 @@ function $convertArchiveElement(domNode: Node): DOMConversionOutput | null { const fileName = element.textContent?.trim() || 'attachment'; const fileSizeAttr = element.getAttribute('data-file-size'); - const fileType = element.getAttribute('data-file-type') || undefined; const fileKey = element.getAttribute('data-file-key') || undefined; - const downloadUrl = element.getAttribute('href') || undefined; const fileSize = fileSizeAttr ? Number(fileSizeAttr) : undefined; const node = $createArchiveNode({ fileName, fileSize: Number.isFinite(fileSize) ? fileSize : undefined, - fileType, fileKey, - downloadUrl, }); return { node }; @@ -56,9 +50,7 @@ export type SerializedArchiveNode = Spread< { fileName: string; fileSize?: number; - fileType?: string; fileKey?: string; - downloadUrl?: string; }, SerializedLexicalNode >; @@ -66,9 +58,7 @@ export type SerializedArchiveNode = Spread< export class ArchiveNode extends DecoratorNode { __fileName: string; __fileSize?: number; - __fileType?: string; __fileKey?: string; - __downloadUrl?: string; __uploadProgress?: number; __uploadError?: string; __uploadId?: string; @@ -81,9 +71,7 @@ export class ArchiveNode extends DecoratorNode { return new ArchiveNode( node.__fileName, node.__fileSize, - node.__fileType, node.__fileKey, - node.__downloadUrl, node.__uploadProgress, node.__uploadError, node.__uploadId, @@ -92,13 +80,11 @@ export class ArchiveNode extends DecoratorNode { } static importJSON(serializedNode: SerializedArchiveNode): ArchiveNode { - const { fileName, fileSize, fileType, fileKey, downloadUrl } = serializedNode; + const { fileName, fileSize, fileKey } = serializedNode; return $createArchiveNode({ fileName, fileSize, - fileType, fileKey, - downloadUrl, }); } @@ -106,9 +92,7 @@ export class ArchiveNode extends DecoratorNode { return { fileName: this.__fileName, fileSize: this.__fileSize, - fileType: this.__fileType, fileKey: this.__fileKey, - downloadUrl: this.__downloadUrl, type: 'archive', version: 1, }; @@ -117,13 +101,7 @@ export class ArchiveNode extends DecoratorNode { exportDOM(): DOMExportOutput { const element = document.createElement('a'); element.textContent = this.__fileName; - if (this.__downloadUrl) { - element.setAttribute('href', this.__downloadUrl); - } element.setAttribute('data-lexical-archive', 'true'); - if (this.__fileType) { - element.setAttribute('data-file-type', this.__fileType); - } if (typeof this.__fileSize === 'number') { element.setAttribute('data-file-size', String(this.__fileSize)); } @@ -136,9 +114,7 @@ export class ArchiveNode extends DecoratorNode { constructor( fileName: string, fileSize?: number, - fileType?: string, fileKey?: string, - downloadUrl?: string, uploadProgress?: number, uploadError?: string, uploadId?: string, @@ -147,9 +123,7 @@ export class ArchiveNode extends DecoratorNode { super(key); this.__fileName = fileName; this.__fileSize = fileSize; - this.__fileType = fileType; this.__fileKey = fileKey; - this.__downloadUrl = downloadUrl; this.__uploadProgress = uploadProgress; this.__uploadError = uploadError; this.__uploadId = uploadId; @@ -176,18 +150,10 @@ export class ArchiveNode extends DecoratorNode { return this.__fileSize; } - getFileType(): string | undefined { - return this.__fileType; - } - getFileKey(): string | undefined { return this.__fileKey; } - getDownloadUrl(): string | undefined { - return this.__downloadUrl; - } - getUploadProgress(): number | undefined { return this.__uploadProgress; } @@ -205,11 +171,6 @@ export class ArchiveNode extends DecoratorNode { writable.__fileKey = fileKey; } - setDownloadUrl(downloadUrl: string): void { - const writable = this.getWritable(); - writable.__downloadUrl = downloadUrl; - } - setUploadProgress(progress: number): void { const writable = this.getWritable(); writable.__uploadProgress = progress; @@ -241,9 +202,7 @@ export class ArchiveNode extends DecoratorNode { nodeKey={this.getKey()} fileName={this.__fileName} fileSize={this.__fileSize} - fileType={this.__fileType} fileKey={this.__fileKey} - downloadUrl={this.__downloadUrl} uploadProgress={this.__uploadProgress} uploadError={this.__uploadError} uploadId={this.__uploadId} @@ -257,9 +216,7 @@ export function $createArchiveNode(payload: ArchivePayload): ArchiveNode { const { fileName, fileSize, - fileType, fileKey, - downloadUrl, uploadProgress, uploadError, uploadId, @@ -269,9 +226,7 @@ export function $createArchiveNode(payload: ArchivePayload): ArchiveNode { new ArchiveNode( fileName, fileSize, - fileType, fileKey, - downloadUrl, uploadProgress, uploadError, uploadId, diff --git a/src/blog/plugins/DragDropPastePlugin.tsx b/src/blog/plugins/DragDropPastePlugin.tsx index e7a00a9..e35d908 100644 --- a/src/blog/plugins/DragDropPastePlugin.tsx +++ b/src/blog/plugins/DragDropPastePlugin.tsx @@ -169,13 +169,12 @@ export default function DragDropPastePlugin(): null { editor.dispatchCommand(INSERT_ARCHIVE_COMMAND, { fileName: file.name, fileSize: file.size, - fileType: file.type || undefined, uploadProgress: 0, uploadId, }); try { - const { fileKey, url } = await uploadBlogFile(file, (progress: number) => { + const { fileKey } = await uploadBlogFile(file, (progress: number) => { editor.update(() => { const nodes = $nodesOfType(ArchiveNode); nodes.forEach((node: ArchiveNode) => { @@ -191,7 +190,6 @@ export default function DragDropPastePlugin(): null { nodes.forEach((node: ArchiveNode) => { if (node.getUploadId() === uploadId) { node.setFileKey(fileKey); - node.setDownloadUrl(url); node.setUploadProgress(100); node.setUploadError(undefined); }