Skip to content

Commit 346c314

Browse files
committed
chore: resolve conflicts & cleanup
1 parent 0f17cc3 commit 346c314

File tree

4 files changed

+47
-1
lines changed

4 files changed

+47
-1
lines changed

src/App.vue

Lines changed: 5 additions & 1 deletion
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

Lines changed: 1 addition & 0 deletions
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

Lines changed: 26 additions & 0 deletions
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>
@@ -149,6 +155,26 @@ function refreshView() {
149155
</div>
150156

151157
<div flex="~ gap-4" text-lg>
158+
<el-popover
159+
v-model:visible="showReset"
160+
popper-class="flex flex-col gap-1"
161+
trigger="click"
162+
width="200px"
163+
>
164+
<div flex justify-center>Want to reset the editor ?</div>
165+
<el-button
166+
flex
167+
self-end
168+
size="small"
169+
type="primary"
170+
@click="resetFiles"
171+
>
172+
Yes
173+
</el-button>
174+
<template #reference>
175+
<button i-ri-delete-bin-line hover:color-primary />
176+
</template>
177+
</el-popover>
152178
<button
153179
i-ri-refresh-line
154180
title="Refresh sandbox"

src/composables/store.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,20 @@ export const useStore = (initial: Initial) => {
249249
}
250250
}
251251

252+
const resetFiles = () => {
253+
const { files, addFile } = store
254+
255+
const isRandomFile = (filename: string) =>
256+
![MAIN_FILE, TSCONFIG, IMPORT_MAP, ELEMENT_PLUS_FILE].includes(
257+
filename,
258+
)
259+
for (const filename in files)
260+
if (isRandomFile(filename)) delete files[filename]
261+
262+
const appFile = new File(APP_FILE, welcomeCode, false)
263+
addFile(appFile)
264+
}
265+
252266
const utils = {
253267
versions,
254268
pr,
@@ -257,6 +271,7 @@ export const useStore = (initial: Initial) => {
257271
serialize,
258272
init,
259273
vuePr,
274+
resetFiles,
260275
}
261276
Object.assign(store, utils)
262277

0 commit comments

Comments
 (0)