File tree Expand file tree Collapse file tree 4 files changed +47
-1
lines changed Expand file tree Collapse file tree 4 files changed +47
-1
lines changed Original file line number Diff line number Diff line change @@ -66,12 +66,16 @@ const refreshPreview = () => {
6666 replRef .value ?.reload ()
6767}
6868
69+ const resetFiles = () => {
70+ store .resetFiles ()
71+ }
72+
6973watch (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"
Original file line number Diff line number Diff line change @@ -7,6 +7,7 @@ export {}
77/* prettier-ignore */
88declare 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' ]
Original file line number Diff line number Diff line change @@ -13,8 +13,10 @@ const replVersion = import.meta.env.REPL_VERSION
1313
1414const emit = defineEmits <{
1515 (e : ' refresh' ): void
16+ (e : ' reset' ): void
1617}>()
1718const nightly = ref (false )
19+ const showReset = ref (false )
1820const dark = useDark ()
1921const toggleDark = useToggle (dark )
2022
@@ -65,6 +67,10 @@ async function copyLink() {
6567function 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"
Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments