29 lines
953 B
TypeScript
29 lines
953 B
TypeScript
import toast from 'react-hot-toast'
|
|
import state from '../index'
|
|
|
|
// Saves the current editor content to global state
|
|
export const saveFile = (showToast: boolean = true, activeId?: number) => {
|
|
const editorModels = state.editorCtx?.getModels()
|
|
const sought = '/' + state.files[state.active].name
|
|
const currentModel = editorModels?.find(editorModel => {
|
|
return editorModel.uri.path.endsWith(sought)
|
|
})
|
|
const file = state.files[activeId || state.active]
|
|
if (state.files.length > 0) {
|
|
file.content = currentModel?.getValue() || ''
|
|
}
|
|
if (showToast) {
|
|
toast.success('Saved successfully', { position: 'bottom-center' })
|
|
}
|
|
}
|
|
|
|
export const saveAllFiles = () => {
|
|
const editorModels = state.editorCtx?.getModels()
|
|
state.files.forEach(file => {
|
|
const currentModel = editorModels?.find(model => model.uri.path.endsWith('/' + file.name))
|
|
if (currentModel) {
|
|
file.content = currentModel?.getValue() || ''
|
|
}
|
|
})
|
|
}
|