Skip to content

Commit 423dab1

Browse files
committed
Add support for esc key when editing item in storage explorer
1 parent 479ccdd commit 423dab1

File tree

3 files changed

+36
-14
lines changed

3 files changed

+36
-14
lines changed

studio/components/to-be-cleaned/Storage/StorageExplorer/ConfirmDeleteModal.tsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,16 @@ const ConfirmDeleteModal: FC<Props> = ({
4747
onCancel={onSelectCancel}
4848
customFooter={
4949
<div className="flex items-center gap-2">
50-
<Button type="default" onClick={onSelectCancel}>
50+
<Button type="default" disabled={deleting} onClick={onSelectCancel}>
5151
Cancel
5252
</Button>
53-
<Button type="primary" danger loading={deleting} onClick={onConfirmDelete}>
53+
<Button
54+
type="primary"
55+
danger
56+
disabled={deleting}
57+
loading={deleting}
58+
onClick={onConfirmDelete}
59+
>
5460
{deleting ? 'Deleting' : 'Delete'}
5561
</Button>
5662
</div>

studio/components/to-be-cleaned/Storage/StorageExplorer/FileExplorerRowEditing.tsx

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,35 @@ const FileExplorerRowEditing = ({ item, view, columnIndex }: FileExplorerRowEdit
1717
const inputRef = useRef<any>(null)
1818
const [itemName, setItemName] = useState(item.name)
1919

20-
const onSetItemName = async (event: any) => {
21-
event.preventDefault()
22-
event.stopPropagation()
20+
const onSaveItemName = async (name: string, event?: any) => {
21+
if (event) {
22+
event.preventDefault()
23+
event.stopPropagation()
24+
}
25+
2326
if (item.type === STORAGE_ROW_TYPES.FILE) {
24-
await renameFile(item, itemName, columnIndex)
27+
await renameFile(item, name, columnIndex)
2528
} else if (has(item, 'id')) {
2629
const itemWithColumnIndex = { ...item, columnIndex }
27-
renameFolder(itemWithColumnIndex, itemName, columnIndex)
30+
renameFolder(itemWithColumnIndex, name, columnIndex)
2831
} else {
29-
addNewFolder(itemName, columnIndex)
32+
addNewFolder(name, columnIndex)
3033
}
3134
}
3235

3336
useEffect(() => {
3437
if (inputRef.current) inputRef.current.select()
38+
39+
// [Joshen] Esc should revert changes
40+
const handleEsc = (event: KeyboardEvent) => {
41+
if (event.key === 'Escape') {
42+
if (item?.id !== undefined) onSaveItemName(item.name)
43+
else addNewFolder('', columnIndex)
44+
}
45+
}
46+
47+
window.addEventListener('keydown', handleEsc)
48+
return () => window.removeEventListener('keydown', handleEsc)
3549
}, [])
3650

3751
return (
@@ -45,17 +59,21 @@ const FileExplorerRowEditing = ({ item, view, columnIndex }: FileExplorerRowEdit
4559
mimeType={item.metadata?.mimetype}
4660
/>
4761
</div>
48-
<form className="h-9" onSubmit={onSetItemName}>
62+
<form className="h-9" onSubmit={(event) => onSaveItemName(itemName, event)}>
4963
<input
5064
autoFocus
5165
ref={inputRef}
5266
className="storage-row-input ml-3 h-full bg-inherit p-0 px-1 text-sm"
5367
type="text"
5468
value={itemName}
5569
onChange={(event) => setItemName(event.target.value)}
56-
onBlur={onSetItemName}
70+
onBlur={(event) => onSaveItemName(itemName, event)}
71+
/>
72+
<button
73+
className="hidden"
74+
type="submit"
75+
onClick={(event) => onSaveItemName(itemName, event)}
5776
/>
58-
<button className="hidden" type="submit" onClick={onSetItemName} />
5977
</form>
6078
</div>
6179
</div>

studio/localStores/storageExplorer/StorageExplorerStore.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1125,7 +1125,7 @@ class StorageExplorerStore {
11251125

11261126
renameFile = async (file, newName, columnIndex) => {
11271127
const originalName = file.name
1128-
if (originalName === newName) {
1128+
if (originalName === newName || newName.length === 0) {
11291129
this.updateRowStatus(originalName, STORAGE_ROW_STATUS.READY, columnIndex)
11301130
} else {
11311131
this.updateRowStatus(originalName, STORAGE_ROW_STATUS.LOADING, columnIndex, newName)
@@ -1576,8 +1576,6 @@ class StorageExplorerStore {
15761576
}
15771577

15781578
addTempRow = (type, name, status, columnIndex, metadata = {}, isPrepend = false) => {
1579-
console.log('addTempRow', { type, name, status })
1580-
15811579
const updatedColumns = this.columns.map((column, idx) => {
15821580
if (idx === columnIndex) {
15831581
const tempRow = { type, name, status, metadata }

0 commit comments

Comments
 (0)