1
0
Fork 0
mirror of https://github.com/muerwre/vault-frontend.git synced 2025-04-24 20:36:40 +07:00
vault-frontend/src/utils/providers/NodeRelatedProvider.tsx
2021-11-22 17:40:46 +07:00

35 lines
896 B
TypeScript

import React, { FC, useEffect } from 'react';
import { INode, ITag } from '~/redux/types';
import { NodeRelatedContextProvider } from '~/utils/context/NodeRelatedContextProvider';
import { INodeRelated } from '~/redux/node/types';
import { useGetNodeRelated } from '~/utils/hooks/data/useGetNodeRelated';
interface NodeRelatedProviderProps {
id: INode['id'];
tags?: ITag[];
}
const defaultValue: INodeRelated = {
albums: {},
similar: [],
};
const NodeRelatedProvider: FC<NodeRelatedProviderProps> = ({ id, children, tags }) => {
const { related, isLoading, refresh } = useGetNodeRelated(id);
useEffect(
() => {
refresh();
},
// eslint-disable-next-line
[tags]
);
return (
<NodeRelatedContextProvider related={related || defaultValue} isLoading={isLoading}>
{children}
</NodeRelatedContextProvider>
);
};
export { NodeRelatedProvider };