1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| import { useCallback, useState } from "react";
| import { dismissTip, getRandomTip, getTipEvent, getTipMetadata } from "./utils";
| import type { Tip, TipsCollection } from "./types";
|
| export const useRandomTip = (collection: keyof TipsCollection) => {
| const [tip, setTip] = useState<Tip | null>(() => getRandomTip(collection));
| const dismiss = useCallback(() => {
| dismissTip(collection);
| setTip(null);
| }, []);
|
| const onLinkClick = useCallback(() => {
| if (tip) {
| __lsa(getTipEvent(collection, tip, "click"), getTipMetadata(tip));
| }
| }, [tip]);
|
| return [tip, dismiss, onLinkClick] as const;
| };
|
|