mirror of
https://github.com/muerwre/vault-frontend.git
synced 2025-04-26 05:16:41 +07:00
node cover display
This commit is contained in:
parent
c8593b7e7a
commit
ad0b9e6a28
9 changed files with 94 additions and 7 deletions
|
@ -1,4 +1,4 @@
|
|||
import { INode, IValidationErrors, IComment, ITag } from '../types';
|
||||
import { INode, IValidationErrors, IComment, ITag, IFile } from '../types';
|
||||
import { NODE_ACTIONS, NODE_TYPES } from './constants';
|
||||
import { INodeState } from './reducer';
|
||||
|
||||
|
@ -84,3 +84,8 @@ export const nodeSetEditor = (editor: INode) => ({
|
|||
type: NODE_ACTIONS.SET_EDITOR,
|
||||
editor,
|
||||
});
|
||||
|
||||
export const nodeSetCoverImage = (current_cover_image: IFile) => ({
|
||||
type: NODE_ACTIONS.SET_COVER_IMAGE,
|
||||
current_cover_image,
|
||||
});
|
||||
|
|
|
@ -35,6 +35,7 @@ export const NODE_ACTIONS = {
|
|||
|
||||
UPDATE_TAGS: `${prefix}UPDATE_TAGS`,
|
||||
SET_TAGS: `${prefix}SET_TAGS`,
|
||||
SET_COVER_IMAGE: `${prefix}SET_COVER_IMAGE`,
|
||||
};
|
||||
|
||||
export const EMPTY_NODE: INode = {
|
||||
|
@ -99,8 +100,10 @@ export const NODE_EDITORS = {
|
|||
};
|
||||
|
||||
export const NODE_PANEL_COMPONENTS = {
|
||||
[NODE_TYPES.TEXT]: [EditorUploadCoverButton],
|
||||
[NODE_TYPES.VIDEO]: [EditorUploadCoverButton],
|
||||
[NODE_TYPES.IMAGE]: [EditorImageUploadButton, EditorUploadCoverButton],
|
||||
[NODE_TYPES.AUDIO]: [EditorAudioUploadButton, EditorImageUploadButton],
|
||||
[NODE_TYPES.AUDIO]: [EditorAudioUploadButton, EditorImageUploadButton, EditorUploadCoverButton],
|
||||
};
|
||||
|
||||
export const NODE_EDITOR_DATA: Record<
|
||||
|
|
|
@ -10,6 +10,7 @@ import {
|
|||
nodeSetCommentData,
|
||||
nodeSetTags,
|
||||
nodeSetEditor,
|
||||
nodeSetCoverImage,
|
||||
} from './actions';
|
||||
import { INodeState } from './reducer';
|
||||
|
||||
|
@ -46,6 +47,11 @@ const setTags = (state: INodeState, { tags }: ReturnType<typeof nodeSetTags>) =>
|
|||
const setEditor = (state: INodeState, { editor }: ReturnType<typeof nodeSetEditor>) =>
|
||||
assocPath(['editor'], editor, state);
|
||||
|
||||
const setCoverImage = (
|
||||
state: INodeState,
|
||||
{ current_cover_image }: ReturnType<typeof nodeSetCoverImage>
|
||||
) => assocPath(['current_cover_image'], current_cover_image, state);
|
||||
|
||||
export const NODE_HANDLERS = {
|
||||
[NODE_ACTIONS.SET_SAVE_ERRORS]: setSaveErrors,
|
||||
[NODE_ACTIONS.SET_LOADING]: setLoading,
|
||||
|
@ -56,4 +62,5 @@ export const NODE_HANDLERS = {
|
|||
[NODE_ACTIONS.SET_COMMENT_DATA]: setCommentData,
|
||||
[NODE_ACTIONS.SET_TAGS]: setTags,
|
||||
[NODE_ACTIONS.SET_EDITOR]: setEditor,
|
||||
[NODE_ACTIONS.SET_COVER_IMAGE]: setCoverImage,
|
||||
};
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { createReducer } from '~/utils/reducer';
|
||||
import { INode, IComment } from '../types';
|
||||
import { INode, IComment, IFile } from '../types';
|
||||
import { EMPTY_NODE, EMPTY_COMMENT } from './constants';
|
||||
import { NODE_HANDLERS } from './handlers';
|
||||
|
||||
|
@ -8,6 +8,7 @@ export type INodeState = Readonly<{
|
|||
current: INode;
|
||||
comments: IComment[];
|
||||
comment_data: Record<number, IComment>;
|
||||
current_cover_image: IFile;
|
||||
|
||||
error: string;
|
||||
errors: Record<string, string>;
|
||||
|
@ -27,6 +28,7 @@ const INITIAL_STATE: INodeState = {
|
|||
current: { ...EMPTY_NODE },
|
||||
comment_data: { 0: { ...EMPTY_COMMENT } },
|
||||
comments: [],
|
||||
current_cover_image: null,
|
||||
|
||||
is_loading: false,
|
||||
is_loading_comments: false,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue