Merge branch 'dev' of github.com:estruyf/vscode-front-matter into dev

This commit is contained in:
Elio Struyf
2023-11-22 10:44:32 +01:00
2 changed files with 28 additions and 21 deletions
+1
View File
@@ -34,6 +34,7 @@
- [#704](https://github.com/estruyf/vscode-front-matter/issues/704): Fix `zod` schema script for optional fields
- [#707](https://github.com/estruyf/vscode-front-matter/issues/707): Fix `clearEmpty` issue with `draft` and `boolean` fields which are by default set to `true`
- [#711](https://github.com/estruyf/vscode-front-matter/issues/711): Fix in character mapping in the slug field
- [#712](https://github.com/estruyf/vscode-front-matter/issues/712): Keep the search context when deleting media files
- [#714](https://github.com/estruyf/vscode-front-matter/issues/714): Fix for taxonomy filtering from taxonomy view to content view
## [9.3.1] - 2023-10-27
+27 -21
View File
@@ -1,6 +1,6 @@
import { Messenger } from '@estruyf/vscode/dist/client';
import { EventData } from '@estruyf/vscode/dist/models';
import { useState, useEffect, useCallback } from 'react';
import { useState, useEffect, useCallback, useMemo } from 'react';
import { useRecoilState, useRecoilValue } from 'recoil';
import { MediaInfo, MediaPaths } from '../../models';
import { DashboardCommand } from '../DashboardCommand';
@@ -52,27 +52,11 @@ export default function useMedia() {
}
}, [search, prevSearch]);
const getMedia = useCallback(() => {
const allMedia = useMemo(() => {
return searchedMedia.slice(page * pageSetNr, (page + 1) * pageSetNr);
}, [searchedMedia, page, pageSetNr]);
const messageListener = (
message: MessageEvent<EventData<MediaPaths | { key: string; value: any }>>
) => {
if (message.data.command === DashboardCommand.media) {
const payload: MediaPaths = message.data.payload as MediaPaths;
setLoading(false);
setMedia(payload.media);
setTotal(payload.total);
setFolders(payload.folders);
setSelectedFolder(payload.selectedFolder);
setSearchedMedia(payload.media);
setAllContentFolders(payload.allContentFolders);
setAllStaticFolders(payload.allStaticfolders);
}
};
useEffect(() => {
const searchMedia = (search: string, media: MediaInfo[]) => {
if (search) {
const fuse = new Fuse(media, fuseOptions);
const results = fuse.search(search);
@@ -86,6 +70,28 @@ export default function useMedia() {
setTotal(media.length);
setSearchedMedia(media);
}
const messageListener = useCallback((message: MessageEvent<EventData<MediaPaths | { key: string; value: any }>>) => {
if (message.data.command === DashboardCommand.media) {
const payload: MediaPaths = message.data.payload as MediaPaths;
setLoading(false);
setMedia(payload.media);
setTotal(payload.total);
setFolders(payload.folders);
setSelectedFolder(payload.selectedFolder);
if (search) {
searchMedia(search, payload.media);
} else {
setSearchedMedia(payload.media);
}
setAllContentFolders(payload.allContentFolders);
setAllStaticFolders(payload.allStaticfolders);
}
}, [search]);
useEffect(() => {
searchMedia(search, media);
}, [search, media]);
useEffect(() => {
@@ -94,9 +100,9 @@ export default function useMedia() {
return () => {
Messenger.unlisten(messageListener);
};
}, []);
}, [search]);
return {
media: getMedia()
media: allMedia
};
}