1
0
Fork 0
mirror of https://github.com/muerwre/vault-frontend.git synced 2025-04-25 12:56:41 +07:00

renamed providers to context

This commit is contained in:
Fedor Katurov 2021-11-21 16:51:59 +07:00
parent 0dc5ae99a3
commit 7284ed7301
14 changed files with 54 additions and 36 deletions

View file

@ -0,0 +1,30 @@
import { IComment, IFile } from '~/redux/types';
import React, { createContext, FC, useContext } from 'react';
export interface CommentProviderProps {
// user: IUser;
comments: IComment[];
count: number;
lastSeenCurrent?: string;
isLoading: boolean;
onShowImageModal: (images: IFile[], index: number) => void;
onLoadMoreComments: () => void;
onDeleteComment: (id: IComment['id'], isLocked: boolean) => void;
}
const CommentContext = createContext<CommentProviderProps>({
// user: EMPTY_USER,
comments: [],
count: 0,
lastSeenCurrent: undefined,
isLoading: false,
onShowImageModal: () => {},
onLoadMoreComments: () => {},
onDeleteComment: () => {},
});
export const CommentContextProvider: FC<CommentProviderProps> = ({ children, ...contextValue }) => {
return <CommentContext.Provider value={contextValue}>{children}</CommentContext.Provider>;
};
export const useCommentContext = () => useContext(CommentContext);

View file

@ -0,0 +1,19 @@
import { INode } from '~/redux/types';
import { EMPTY_NODE } from '~/redux/node/constants';
import React, { createContext, FC, useContext } from 'react';
export interface NodeContextProps {
node: INode;
isLoading: boolean;
}
export const NodeContext = createContext<NodeContextProps>({
node: EMPTY_NODE,
isLoading: false,
});
export const NodeContextProvider: FC<NodeContextProps> = ({ children, ...contextValue }) => {
return <NodeContext.Provider value={contextValue}>{children}</NodeContext.Provider>;
};
export const useNodeContext = () => useContext(NodeContext);

View file

@ -0,0 +1,18 @@
import { INodeRelated } from '~/redux/node/types';
import React, { createContext, FC, useContext } from 'react';
interface NodeRelatedProviderProps {
related: INodeRelated;
isLoading: boolean;
}
const NodeRelatedContext = createContext<NodeRelatedProviderProps>({
related: { albums: {}, similar: [] },
isLoading: false,
});
export const NodeRelatedContextProvider: FC<NodeRelatedProviderProps> = ({ children, ...rest }) => (
<NodeRelatedContext.Provider value={rest}>{children}</NodeRelatedContext.Provider>
);
export const useNodeRelatedContext = () => useContext<NodeRelatedProviderProps>(NodeRelatedContext);

View file

@ -0,0 +1,28 @@
import React, { createContext, FC, useContext } from 'react';
import { ITag } from '~/redux/types';
export interface TagContextProps {
tags: ITag[];
canAppend: boolean;
canDelete: boolean;
isLoading: boolean;
onChange: (tags: string[]) => void;
onTagClick: (tag: Partial<ITag>) => void;
onTagDelete: (id: ITag['ID']) => void;
}
const TagContext = createContext<TagContextProps>({
tags: [],
canDelete: false,
canAppend: false,
isLoading: false,
onChange: () => {},
onTagClick: () => {},
onTagDelete: () => {},
});
export const TagsContextProvider: FC<TagContextProps> = ({ children, ...contextValue }) => {
return <TagContext.Provider value={contextValue}>{children}</TagContext.Provider>;
};
export const useTagContext = () => useContext(TagContext);

View file

@ -0,0 +1,11 @@
import React, { createContext, FC, useContext } from 'react';
import { IUser } from '~/redux/auth/types';
import { EMPTY_USER } from '~/redux/auth/constants';
const UserContext = createContext<IUser>(EMPTY_USER);
export const UserContextProvider: FC<{ user: IUser }> = ({ children, user }) => (
<UserContext.Provider value={user}>{children}</UserContext.Provider>
);
export const useUserContext = () => useContext(UserContext);