Skip to content

Commit 478ab47

Browse files
committed
chore: resolve conflicts & cleanup
1 parent 9d21f03 commit 478ab47

File tree

4 files changed

+47
-1
lines changed

4 files changed

+47
-1
lines changed

src/App.vue

+5-1
Original file line numberDiff line numberDiff line change
@@ -66,12 +66,16 @@ const refreshPreview = () => {
6666
replRef.value?.reload()
6767
}
6868

69+
const resetFiles = () => {
70+
store.resetFiles()
71+
}
72+
6973
watch(autoSave, setAutoSaveState)
7074
</script>
7175

7276
<template>
7377
<div v-if="!loading" antialiased>
74-
<Header :store="store" @refresh="refreshPreview" />
78+
<Header :store="store" @refresh="refreshPreview" @reset="resetFiles" />
7579
<Repl
7680
ref="replRef"
7781
v-model="autoSave"

src/components.d.ts

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ export {}
77
/* prettier-ignore */
88
declare module 'vue' {
99
export interface GlobalComponents {
10+
ElButton: typeof import('element-plus/es')['ElButton']
1011
ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
1112
ElForm: typeof import('element-plus/es')['ElForm']
1213
ElFormItem: typeof import('element-plus/es')['ElFormItem']

src/components/Header.vue

+26
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@ const replVersion = import.meta.env.REPL_VERSION
1313
1414
const emit = defineEmits<{
1515
(e: 'refresh'): void
16+
(e: 'reset'): void
1617
}>()
1718
const nightly = ref(false)
19+
const showReset = ref(false)
1820
const dark = useDark()
1921
const toggleDark = useToggle(dark)
2022
@@ -65,6 +67,10 @@ async function copyLink() {
6567
function refreshView() {
6668
emit('refresh')
6769
}
70+
function resetFiles() {
71+
showReset.value = false
72+
emit('reset')
73+
}
6874
</script>
6975

7076
<template>
@@ -140,6 +146,26 @@ function refreshView() {
140146
</div>
141147

142148
<div flex="~ gap-4" text-lg>
149+
<el-popover
150+
v-model:visible="showReset"
151+
popper-class="flex flex-col gap-1"
152+
trigger="click"
153+
width="200px"
154+
>
155+
<div flex justify-center>Want to reset the editor ?</div>
156+
<el-button
157+
flex
158+
self-end
159+
size="small"
160+
type="primary"
161+
@click="resetFiles"
162+
>
163+
Yes
164+
</el-button>
165+
<template #reference>
166+
<button i-ri-delete-bin-line hover:color-primary />
167+
</template>
168+
</el-popover>
143169
<button
144170
i-ri-refresh-line
145171
title="Refresh sandbox"

src/composables/store.ts

+15
Original file line numberDiff line numberDiff line change
@@ -231,13 +231,28 @@ export const useStore = (initial: Initial) => {
231231
}
232232
}
233233

234+
const resetFiles = () => {
235+
const { files, addFile } = store
236+
237+
const isRandomFile = (filename: string) =>
238+
![MAIN_FILE, TSCONFIG, IMPORT_MAP, ELEMENT_PLUS_FILE].includes(
239+
filename,
240+
)
241+
for (const filename in files)
242+
if (isRandomFile(filename)) delete files[filename]
243+
244+
const appFile = new File(APP_FILE, welcomeCode, false)
245+
addFile(appFile)
246+
}
247+
234248
const utils = {
235249
versions,
236250
pr,
237251
setVersion,
238252
toggleNightly,
239253
serialize,
240254
init,
255+
resetFiles,
241256
}
242257
Object.assign(store, utils)
243258

0 commit comments

Comments
 (0)