#749 - Support in extended configs

This commit is contained in:
Elio Struyf
2024-02-22 11:44:23 +01:00
parent bc3b2c403d
commit a641aabc2a
8 changed files with 19 additions and 7 deletions

View File

@@ -533,7 +533,12 @@
],
"markdownDescription": "%setting.frontMatter.content.filters.markdownDescription%",
"items": [{
"type": "string"
"type": "string",
"enum": [
"contentFolders",
"tags",
"categories"
]
},
{
"type": "object",

View File

@@ -18,7 +18,7 @@ export const Filters: React.FunctionComponent<IFiltersProps> = (_: React.PropsWi
const settings = useRecoilValue(SettingsSelector);
const location = useLocation();
const otherFilters = useMemo(() => settings?.filters?.filter((filter) => filter !== "pageFolders" && filter !== "tags" && filter !== "categories"), [settings?.filters]);
const otherFilters = useMemo(() => settings?.filters?.filter((filter) => filter !== "contentFolders" && filter !== "tags" && filter !== "categories"), [settings?.filters]);
const otherFilterValues = useMemo(() => {
return otherFilters?.map((filter) => {

View File

@@ -204,7 +204,7 @@ export default function usePages(pages: Page[]) {
setTabInfo(draftTypes);
if (Object.keys(filters).length === 0) {
const availableFilters = (settings?.filters || []).filter((f) => f !== 'pageFolders' && f !== 'tags' && f !== 'categories');
const availableFilters = (settings?.filters || []).filter((f) => f !== 'contentFolders' && f !== 'tags' && f !== 'categories');
if (availableFilters.length > 0) {
const allFilters: { [filter: string]: string[]; } = {};
for (const filter of availableFilters) {

View File

@@ -6,6 +6,7 @@ import {
CustomScript,
CustomTaxonomy,
DraftField,
FilterType,
Framework,
GitSettings,
MediaContentType,
@@ -38,7 +39,7 @@ export interface Settings {
framework: Framework | null | undefined;
draftField: DraftField | null | undefined;
customSorting: SortingSetting[] | undefined;
filters: (string | { title: string; name: string })[] | undefined;
filters: (FilterType | { title: string; name: string })[] | undefined;
dashboardState: DashboardState;
scripts: CustomScript[];
dataFiles: DataFile[] | undefined;

View File

@@ -42,6 +42,7 @@ import {
CustomScript,
DEFAULT_MEDIA_CONTENT_TYPE,
DraftField,
FilterType,
MediaContentType,
Snippets,
SortingSetting,
@@ -111,7 +112,8 @@ export class DashboardSettings {
draftField: Settings.get<DraftField>(SETTING_CONTENT_DRAFT_FIELD),
customSorting: Settings.get<SortingSetting[]>(SETTING_CONTENT_SORTING),
contentFolders: Folders.get(),
filters: Settings.get<string[]>(SETTING_CONTENT_FILTERS),
filters:
Settings.get<(FilterType | { title: string; name: string })[]>(SETTING_CONTENT_FILTERS),
crntFramework: Settings.get<string>(SETTING_FRAMEWORK_ID),
framework: !isInitialized && wsFolder ? await FrameworkDetector.get(wsFolder.fsPath) : null,
scripts: Settings.get<CustomScript[]>(SETTING_CUSTOM_SCRIPTS) || [],

View File

@@ -43,7 +43,8 @@ import {
SETTING_CONFIG_DYNAMIC_FILE_PATH,
SETTING_PROJECTS,
SETTING_TAXONOMY_TAGS,
SETTING_TAXONOMY_CATEGORIES
SETTING_TAXONOMY_CATEGORIES,
SETTING_CONTENT_FILTERS
} from '../constants';
import { Folders } from '../commands/Folders';
import { join, basename, dirname, parse } from 'path';
@@ -804,7 +805,8 @@ export class Settings {
settingName === SETTING_GLOBAL_NOTIFICATIONS ||
settingName === SETTING_GLOBAL_NOTIFICATIONS_DISABLED ||
settingName === SETTING_MEDIA_SUPPORTED_MIMETYPES ||
settingName === SETTING_COMMA_SEPARATED_FIELDS
settingName === SETTING_COMMA_SEPARATED_FIELDS ||
settingName === SETTING_CONTENT_FILTERS
) {
if (typeof originalConfig[key] === 'undefined') {
Settings.globalConfig[key] = value;

1
src/models/FilterType.ts Normal file
View File

@@ -0,0 +1 @@
export type FilterType = 'contentFolders' | 'tags' | 'categories';

View File

@@ -11,6 +11,7 @@ export * from './DataFile';
export * from './DataFolder';
export * from './DataType';
export * from './DraftField';
export * from './FilterType';
export * from './Framework';
export * from './GitRepository';
export * from './GitSettings';