33
33
font-size =" 0.7em"
34
34
rounded
35
35
size =" md"
36
- />
36
+ >
37
+ <QBadge
38
+ v-if =" file.commentCount && file.commentCount > 0"
39
+ color =" accent"
40
+ :label =" file.commentCount"
41
+ transparent
42
+ floating
43
+ />
44
+ </QAvatar >
37
45
</QItemSection >
38
46
<!-- The file display name or actual name -->
39
47
<QItemSection >
44
52
<div >
45
53
<!-- Button to delete file -->
46
54
<QBtn
47
- v-show ="
48
- !file.ref &&
49
- file.name !== readmeName &&
50
- selected &&
51
- unsaved
52
- "
55
+ v-show =" !file.ref && file.name !== readmeName && selected && unsaved"
53
56
color =" red-8"
54
57
:icon =" tabTrash"
55
58
@click =" emits('remove')"
58
61
/>
59
62
<!-- Button to edit file name -->
60
63
<QBtn
61
- v-show =" selected
62
- && allowEdit
63
- && file.name !== readmeName"
64
+ v-show =" selected && allowEdit && file.name !== readmeName"
64
65
color =" deep-purple-4"
65
66
:icon =" tabPencil"
66
67
@click =" handleStartEditing"
67
68
dense
68
69
flat
69
- />
70
+ />
70
71
</div >
71
72
</QItemSection >
72
73
</QItem >
73
74
74
75
<!-- Control for editing a file name -->
75
- <QItem
76
- v-else
77
- class =" q-ma-sm q-px-none" >
76
+ <QItem v-else class =" q-ma-sm q-px-none" >
78
77
<QItemSection >
79
78
<QInput
80
79
ref =" existingFileName"
86
85
stack-label
87
86
outlined
88
87
autofocus
89
- dense >
88
+ dense
89
+ >
90
90
<template #after >
91
- <QBtn
92
- :icon =" tabX"
93
- @click =" handleCancelEdit"
94
- flat
95
- dense />
91
+ <QBtn :icon =" tabX" @click =" handleCancelEdit" flat dense />
96
92
</template >
97
93
98
94
<template #append >
101
97
:disable =" (editedFileName?.trim().length ?? 0) === 0"
102
98
@click =" handleConfirmEditFileName"
103
99
flat
104
- dense />
100
+ dense
101
+ />
105
102
</template >
106
103
</QInput >
107
104
</QItemSection >
108
105
</QItem >
109
-
110
106
</template >
111
107
112
108
<script setup lang="ts">
113
- import type { SourceFile } from ' ../../../shared/viewModels' ;
109
+ import type { SourceFile } from " ../../../shared/viewModels" ;
114
110
115
111
import {
116
112
tabPencil ,
117
113
tabFileCheck ,
118
114
tabFileUpload ,
119
115
tabTrash ,
120
- tabX
116
+ tabX ,
121
117
} from " quasar-extras-svg-icons/tabler-icons" ;
122
118
123
119
const props = defineProps <{
124
- file: SourceFile ,
125
- allowEdit: boolean ,
126
- selected? : boolean ,
127
- unsaved? : boolean
128
- }>()
120
+ file: SourceFile ;
121
+ allowEdit: boolean ;
122
+ selected? : boolean ;
123
+ unsaved? : boolean ;
124
+ }>();
129
125
130
126
const emits = defineEmits <{
131
- selected: [],
132
- remove: [],
133
- changeName: [string ]
134
- }>()
127
+ selected: [];
128
+ remove: [];
129
+ changeName: [string ];
130
+ }>();
135
131
136
132
const readmeName = " .README.md" ;
137
133
138
134
const { dark } = storeToRefs (useAppStore ());
139
135
140
- const editedFileName = ref <string | undefined >()
136
+ const editedFileName = ref <string | undefined >();
141
137
142
- const editing = ref (false )
138
+ const editing = ref (false );
143
139
144
140
/**
145
141
* When the selected file changes, we cancel out any edits
146
142
*/
147
- watch (() => props .selected , (currentlySelected ) => {
148
- if (! currentlySelected ) {
149
- handleCancelEdit ()
143
+ watch (
144
+ () => props .selected ,
145
+ (currentlySelected ) => {
146
+ if (! currentlySelected ) {
147
+ handleCancelEdit ();
148
+ }
150
149
}
151
- })
150
+ );
152
151
153
152
/**
154
153
* Start editing by copying over the name of the file as default.
155
154
*/
156
155
function handleStartEditing() {
157
- editedFileName .value = props .file .name .substring (0 , props .file .name .lastIndexOf (' . ' ))
158
- editing .value = true
156
+ editedFileName .value = props .file .name .substring (0 , props .file .name .lastIndexOf (" . " ));
157
+ editing .value = true ;
159
158
}
160
159
161
160
/**
@@ -164,19 +163,19 @@ function handleStartEditing() {
164
163
*/
165
164
async function handleConfirmEditFileName() {
166
165
if (! editedFileName .value || (editedFileName .value ?.length ?? 0 ) === 0 ) {
167
- return
166
+ return ;
168
167
}
169
168
170
- await emits (' changeName' , editedFileName .value )
169
+ await emits (" changeName" , editedFileName .value );
171
170
172
- handleCancelEdit ()
171
+ handleCancelEdit ();
173
172
}
174
173
175
174
/**
176
175
* User cancels the edit or changes the selected item.
177
176
*/
178
177
function handleCancelEdit() {
179
- editing .value = false
180
- editedFileName .value = ' '
178
+ editing .value = false ;
179
+ editedFileName .value = " " ;
181
180
}
182
181
</script >
0 commit comments