mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-05-03 16:23:58 +00:00
markdown view tab
This commit is contained in:
@@ -77,11 +77,25 @@
|
|||||||
$: folder = data?.folder;
|
$: folder = data?.folder;
|
||||||
$: handler = HANDLERS[folder] as FileTypeHandler;
|
$: handler = HANDLERS[folder] as FileTypeHandler;
|
||||||
|
|
||||||
|
const showMarkdownPage = () => {
|
||||||
|
openNewTab({
|
||||||
|
title: data.file,
|
||||||
|
icon: 'img markdown',
|
||||||
|
tabComponent: 'MarkdownViewTab',
|
||||||
|
props: {
|
||||||
|
savedFile: data.file,
|
||||||
|
savedFolder: 'markdown',
|
||||||
|
savedFormat: 'text',
|
||||||
|
},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
function createMenu() {
|
function createMenu() {
|
||||||
return [
|
return [
|
||||||
{ text: 'Open', onClick: openTab },
|
{ text: 'Open', onClick: openTab },
|
||||||
hasPermission(`files/${data.folder}/write`) && { text: 'Rename', onClick: handleRename },
|
hasPermission(`files/${data.folder}/write`) && { text: 'Rename', onClick: handleRename },
|
||||||
hasPermission(`files/${data.folder}/write`) && { text: 'Delete', onClick: handleDelete },
|
hasPermission(`files/${data.folder}/write`) && { text: 'Delete', onClick: handleDelete },
|
||||||
|
folder == 'markdown' && { text: 'Show page', onClick: showMarkdownPage },
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
47
packages/web/src/tabs/MarkdownViewTab.svelte
Normal file
47
packages/web/src/tabs/MarkdownViewTab.svelte
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
<script lang="ts" context="module">
|
||||||
|
export const allowAddToFavorites = props => true;
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script lang="ts">
|
||||||
|
import { onMount } from 'svelte';
|
||||||
|
import LoadingInfo from '../elements/LoadingInfo.svelte';
|
||||||
|
import Markdown from '../elements/Markdown.svelte';
|
||||||
|
|
||||||
|
import axiosInstance from '../utility/axiosInstance';
|
||||||
|
|
||||||
|
export let savedFile;
|
||||||
|
|
||||||
|
let isLoading = false;
|
||||||
|
let text = null;
|
||||||
|
|
||||||
|
const handleLoad = async () => {
|
||||||
|
isLoading = true;
|
||||||
|
const resp = await axiosInstance.post('files/load', {
|
||||||
|
folder: 'markdown',
|
||||||
|
file: savedFile,
|
||||||
|
format: 'text',
|
||||||
|
});
|
||||||
|
text = resp.data;
|
||||||
|
isLoading = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
onMount(() => {
|
||||||
|
handleLoad();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{#if isLoading}
|
||||||
|
<LoadingInfo message="Loading markdown page" />
|
||||||
|
{:else}
|
||||||
|
<div>
|
||||||
|
<Markdown source={text || ''} />
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
<style>
|
||||||
|
div {
|
||||||
|
padding: 10px;
|
||||||
|
overflow: auto;
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -8,7 +8,7 @@ import * as FreeTableTab from './FreeTableTab.svelte';
|
|||||||
import * as PluginTab from './PluginTab.svelte';
|
import * as PluginTab from './PluginTab.svelte';
|
||||||
import * as ChartTab from './ChartTab.svelte';
|
import * as ChartTab from './ChartTab.svelte';
|
||||||
import * as MarkdownEditorTab from './MarkdownEditorTab.svelte';
|
import * as MarkdownEditorTab from './MarkdownEditorTab.svelte';
|
||||||
// import MarkdownViewTab from './MarkdownViewTab';
|
import * as MarkdownViewTab from './MarkdownViewTab.svelte';
|
||||||
// import MarkdownPreviewTab from './MarkdownPreviewTab';
|
// import MarkdownPreviewTab from './MarkdownPreviewTab';
|
||||||
import * as FavoriteEditorTab from './FavoriteEditorTab.svelte';
|
import * as FavoriteEditorTab from './FavoriteEditorTab.svelte';
|
||||||
import * as QueryDesignTab from './QueryDesignTab.svelte';
|
import * as QueryDesignTab from './QueryDesignTab.svelte';
|
||||||
@@ -24,7 +24,7 @@ export default {
|
|||||||
PluginTab,
|
PluginTab,
|
||||||
ChartTab,
|
ChartTab,
|
||||||
MarkdownEditorTab,
|
MarkdownEditorTab,
|
||||||
// MarkdownViewTab,
|
MarkdownViewTab,
|
||||||
// MarkdownPreviewTab,
|
// MarkdownPreviewTab,
|
||||||
FavoriteEditorTab,
|
FavoriteEditorTab,
|
||||||
QueryDesignTab,
|
QueryDesignTab,
|
||||||
|
|||||||
Reference in New Issue
Block a user