main
html 86 lines 2.58 KB
Raw
1 <html>
2 <head>
3 <title>Rename</title>
4 <script type="module">
5 import { store } from "/components/modals/file-browser/file-browser-store.js";
6 </script>
7 </head>
8 <body>
9 <div x-data>
10 <template x-if="$store.fileBrowser">
11 <div class="rename-modal-root" x-init="$nextTick(() => $refs.renameInput?.focus())">
12 <div class="rename-form">
13 <label class="rename-label" x-text="$store.fileBrowser.renameMode === 'create-folder' ? 'New folder name' : 'New name'"></label>
14 <input
15 class="rename-input"
16 type="text"
17 x-ref="renameInput"
18 x-model="$store.fileBrowser.renameName"
19 @keydown.enter.prevent="$store.fileBrowser.confirmRename()"
20 :disabled="$store.fileBrowser.isRenaming"
21 />
22 <template x-if="$store.fileBrowser.renameError">
23 <p class="rename-error" x-text="$store.fileBrowser.renameError"></p>
24 </template>
25 <p class="rename-hint" x-text="$store.fileBrowser.renameMode === 'create-folder' ? 'Folder will be created in the current directory.' : 'Renaming will keep the item in the same directory.'"></p>
26 </div>
27 </div>
28 </template>
29 </div>
30
31 <template x-if="$store.fileBrowser">
32 <div class="modal-footer" data-modal-footer>
33 <button class="btn btn-ok" @click="$store.fileBrowser.confirmRename()" :disabled="$store.fileBrowser.isRenaming || !$store.fileBrowser.renameName.trim()" x-text="$store.fileBrowser.renameMode === 'create-folder' ? 'Create Folder' : 'Rename'"></button>
34 <button class="btn btn-cancel" @click="$store.fileBrowser.closeRenameModal()" :disabled="$store.fileBrowser.isRenaming">Cancel</button>
35 </div>
36 </template>
37
38 <style>
39 .rename-modal-root {
40 display: flex;
41 flex-direction: column;
42 gap: var(--spacing-md);
43 width: 100%;
44 }
45
46 .rename-form {
47 display: flex;
48 flex-direction: column;
49 gap: var(--spacing-sm);
50 margin: 1rem;
51 }
52
53 .rename-label {
54 font-weight: 600;
55 color: var(--color-text);
56 }
57
58 .rename-input {
59 width: 100%;
60 padding: 10px 12px;
61 border-radius: 6px;
62 border: 1px solid var(--color-border);
63 background: var(--color-background);
64 color: var(--color-text);
65 }
66
67 .rename-input:disabled {
68 opacity: 0.7;
69 cursor: not-allowed;
70 }
71
72 .rename-hint {
73 margin: 0;
74 color: var(--color-text-secondary);
75 font-size: 0.85rem;
76 }
77
78 .rename-error {
79 margin: 0;
80 color: var(--color-accent);
81 font-weight: 500;
82 font-size: 0.85rem;
83 }
84 </style>
85 </body>
86 </html>