feat(core): add default display preference (#12333)

This commit is contained in:
EYHN
2025-05-20 11:31:11 +09:00
committed by GitHub
parent ec7993c5e7
commit 6abd4bf427

View File

@@ -1,8 +1,22 @@
import { LiveData } from '@toeverything/infra'; import { LiveData } from '@toeverything/infra';
import { uniq } from 'lodash-es';
import { createContext } from 'react'; import { createContext } from 'react';
import type { ExplorerDisplayPreference } from './types'; import type { ExplorerDisplayPreference } from './types';
const DefaultDisplayPreference: ExplorerDisplayPreference = {
view: 'list',
displayProperties: [
'system:createdAt',
'system:updatedAt',
'system:createdBy',
'system:tags',
],
showDocIcon: true,
showDocPreview: true,
quickFavorite: true,
};
export type DocExplorerContextType = { export type DocExplorerContextType = {
groups$: LiveData<Array<{ key: string; items: string[] }>>; groups$: LiveData<Array<{ key: string; items: string[] }>>;
collapsedGroups$: LiveData<string[]>; collapsedGroups$: LiveData<string[]>;
@@ -23,9 +37,14 @@ export const DocExplorerContext = createContext<DocExplorerContextType>(
export const createDocExplorerContext = ( export const createDocExplorerContext = (
initialState?: ExplorerDisplayPreference initialState?: ExplorerDisplayPreference
) => { ) => {
const displayPreference$ = new LiveData<ExplorerDisplayPreference>( const displayPreference$ = new LiveData<ExplorerDisplayPreference>({
initialState ?? {} ...DefaultDisplayPreference,
); ...initialState,
displayProperties: uniq([
...(DefaultDisplayPreference.displayProperties ?? []),
...(initialState?.displayProperties ?? []),
]),
});
return { return {
groups$: new LiveData<Array<{ key: string; items: string[] }>>([]), groups$: new LiveData<Array<{ key: string; items: string[] }>>([]),
collapsedGroups$: new LiveData<string[]>([]), collapsedGroups$: new LiveData<string[]>([]),