-
Notifications
You must be signed in to change notification settings - Fork 2.7k
/
Copy pathuseBookmarkedSlashCommands.ts
45 lines (39 loc) · 1.1 KB
/
useBookmarkedSlashCommands.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import { SlashCommandDescription } from "core";
import { usePostHog } from "posthog-js/react";
import {
bookmarkSlashCommand,
selectBookmarkedSlashCommands,
unbookmarkSlashCommand,
} from "../redux";
import { useAppDispatch, useAppSelector } from "../redux/hooks";
export function useBookmarkedSlashCommands() {
const dispatch = useAppDispatch();
const posthog = usePostHog();
const bookmarkedCommands = useAppSelector(selectBookmarkedSlashCommands);
const isCommandBookmarked = (commandName: string): boolean => {
return bookmarkedCommands.includes(commandName);
};
const toggleBookmark = (command: SlashCommandDescription) => {
const isBookmarked = isCommandBookmarked(command.name);
posthog.capture("toggle_bookmarked_slash_command", {
isBookmarked,
});
if (isBookmarked) {
dispatch(
unbookmarkSlashCommand({
commandName: command.name,
}),
);
} else {
dispatch(
bookmarkSlashCommand({
commandName: command.name,
}),
);
}
};
return {
isCommandBookmarked,
toggleBookmark,
};
}