mirror of
https://github.com/go-gitea/gitea.git
synced 2025-12-14 16:33:57 +01:00
Refactor FileTreeItem type (#36137)
This commit is contained in:
parent
1e72b15639
commit
ac8308b5cb
@ -2,20 +2,10 @@
|
|||||||
import {SvgIcon} from '../svg.ts';
|
import {SvgIcon} from '../svg.ts';
|
||||||
import {isPlainClick} from '../utils/dom.ts';
|
import {isPlainClick} from '../utils/dom.ts';
|
||||||
import {shallowRef} from 'vue';
|
import {shallowRef} from 'vue';
|
||||||
import {type createViewFileTreeStore} from './ViewFileTreeStore.ts';
|
import type {createViewFileTreeStore, FileTreeItem} from './ViewFileTreeStore.ts';
|
||||||
|
|
||||||
export type Item = {
|
|
||||||
entryName: string;
|
|
||||||
entryMode: 'blob' | 'exec' | 'tree' | 'commit' | 'symlink' | 'unknown';
|
|
||||||
entryIcon: string;
|
|
||||||
entryIconOpen: string;
|
|
||||||
fullPath: string;
|
|
||||||
submoduleUrl?: string;
|
|
||||||
children?: Item[];
|
|
||||||
};
|
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
item: Item,
|
item: FileTreeItem,
|
||||||
store: ReturnType<typeof createViewFileTreeStore>
|
store: ReturnType<typeof createViewFileTreeStore>
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
|
|||||||
@ -3,11 +3,20 @@ import {GET} from '../modules/fetch.ts';
|
|||||||
import {pathEscapeSegments} from '../utils/url.ts';
|
import {pathEscapeSegments} from '../utils/url.ts';
|
||||||
import {createElementFromHTML} from '../utils/dom.ts';
|
import {createElementFromHTML} from '../utils/dom.ts';
|
||||||
import {html} from '../utils/html.ts';
|
import {html} from '../utils/html.ts';
|
||||||
import type {Item} from './ViewFileTreeItem.vue';
|
|
||||||
|
export type FileTreeItem = {
|
||||||
|
entryName: string;
|
||||||
|
entryMode: 'blob' | 'exec' | 'tree' | 'commit' | 'symlink' | 'unknown';
|
||||||
|
entryIcon: string;
|
||||||
|
entryIconOpen: string;
|
||||||
|
fullPath: string;
|
||||||
|
submoduleUrl?: string;
|
||||||
|
children?: Array<FileTreeItem>;
|
||||||
|
};
|
||||||
|
|
||||||
export function createViewFileTreeStore(props: {repoLink: string, treePath: string, currentRefNameSubURL: string}) {
|
export function createViewFileTreeStore(props: {repoLink: string, treePath: string, currentRefNameSubURL: string}) {
|
||||||
const store = reactive({
|
const store = reactive({
|
||||||
rootFiles: [] as Array<Item>,
|
rootFiles: [] as Array<FileTreeItem>,
|
||||||
selectedItem: props.treePath,
|
selectedItem: props.treePath,
|
||||||
|
|
||||||
async loadChildren(treePath: string, subPath: string = '') {
|
async loadChildren(treePath: string, subPath: string = '') {
|
||||||
|
|||||||
4
web_src/js/globals.d.ts
vendored
4
web_src/js/globals.d.ts
vendored
@ -12,8 +12,8 @@ declare module '*.vue' {
|
|||||||
import type {DefineComponent} from 'vue';
|
import type {DefineComponent} from 'vue';
|
||||||
const component: DefineComponent<unknown, unknown, any>;
|
const component: DefineComponent<unknown, unknown, any>;
|
||||||
export default component;
|
export default component;
|
||||||
// List of named exports from vue components, used to make `tsc` output clean.
|
// Here we declare all exports from vue files so `tsc` or `tsgo` can work for
|
||||||
// To actually lint .vue files, `vue-tsc` is used because `tsc` can not parse them.
|
// non-vue files. To lint .vue files, `vue-tsc` must be used.
|
||||||
export function initDashboardRepoList(): void;
|
export function initDashboardRepoList(): void;
|
||||||
export function initRepositoryActionView(): void;
|
export function initRepositoryActionView(): void;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user