diff --git a/src/main/services/api/server.ts b/src/main/services/api/server.ts index e18eb70e..779c3065 100644 --- a/src/main/services/api/server.ts +++ b/src/main/services/api/server.ts @@ -8,6 +8,7 @@ import type { Server } from 'http' import type { Socket } from 'net' import { remove } from 'lodash' import type { SnippetWithFolder } from '@shared/types/renderer/store/snippets' +import { BrowserWindow } from 'electron' interface ServerWithDestroy extends Server { destroy: Function @@ -82,6 +83,13 @@ export class ApiServer { res.sendStatus(200) }) + app.post('/snippets/create', (req, res) => { + const windows = BrowserWindow.getAllWindows() + windows[0].webContents.send('api:snippet-create', req.body) + + res.sendStatus(200) + }) + app.delete('/tags/:id', (req, res) => { const id = req.params.id const tags = router.db.get('tags').value() diff --git a/src/renderer/App.vue b/src/renderer/App.vue index a6298a11..cc690998 100644 --- a/src/renderer/App.vue +++ b/src/renderer/App.vue @@ -25,10 +25,12 @@ import { onAddNewFragment, onAddNewFolder, onCopySnippet, - emitter + emitter, + onCreateSnippet } from '@/composable' import { createToast, destroyAllToasts } from 'vercel-toast' import { useRoute } from 'vue-router' +import type { Snippet } from '@shared/types/main/db' // По какой то причине необходимо явно установить роут в '/' // для корректного поведения в продакшен сборке @@ -177,6 +179,10 @@ ipc.on('main-menu:format-snippet', () => { ipc.on('main-menu:search', () => { emitter.emit('search:focus', true) }) + +ipc.on('api:snippet-create', (event, body: Snippet) => { + onCreateSnippet(body) +})