mirror of
https://github.com/muerwre/vault-frontend.git
synced 2025-04-25 04:46:40 +07:00
19 lines
739 B
TypeScript
19 lines
739 B
TypeScript
import { INode } from '~/redux/types';
|
|
import { useCallback } from 'react';
|
|
import { useDispatch } from 'react-redux';
|
|
import { nodeEdit, nodeLike, nodeLock, nodeStar } from '~/redux/node/actions';
|
|
|
|
export const useNodeActions = (node: INode) => {
|
|
const dispatch = useDispatch();
|
|
|
|
const onEdit = useCallback(() => dispatch(nodeEdit(node.id)), [dispatch, nodeEdit, node]);
|
|
const onLike = useCallback(() => dispatch(nodeLike(node.id)), [dispatch, nodeLike, node]);
|
|
const onStar = useCallback(() => dispatch(nodeStar(node.id)), [dispatch, nodeStar, node]);
|
|
const onLock = useCallback(() => dispatch(nodeLock(node.id, !node.deleted_at)), [
|
|
dispatch,
|
|
nodeLock,
|
|
node,
|
|
]);
|
|
|
|
return { onEdit, onLike, onStar, onLock };
|
|
};
|