// eslint-disable-next-line no-restricted-imports import shuffle from "lodash/shuffle"; import { useState, memo } from "react"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { localStorage } from "@calcom/lib/webstorage"; import { Card } from "@calcom/ui"; export const tips = [ { id: 4, thumbnailUrl: "https://assets.blsmedia.de/cal/webai.jpg", mediaLink: "https://bls.media/webai", title: "BLS webai", description: "Deine eigene individuelle KI", href: "https://bls.media/webai", }, { id: 3, thumbnailUrl: "https://assets.blsmedia.de/cal/bot.jpg", mediaLink: "https://bls.media/bot", title: "BLS bot", description: "Sag Tschüss zu unpersönlichen Kontaktformularen!", href: "https://bls.media/bot", }, { id: 2, thumbnailUrl: "https://assets.blsmedia.de/cal/teams.jpg", mediaLink: "https://bls.media/cal#teams", title: "Besser im Team", description: "Volles Potential von BLS cal", href: "https://bls.media/cal#teams", }, { id: 1, thumbnailUrl: "https://assets.blsmedia.de/cal/media.jpg", mediaLink: "https://bls.media", title: "BLS media", description: "Lerne alle unsere Tools kennen", href: "https://bls.media", }, ]; const reversedTips = shuffle(tips).slice(0).reverse(); function Tips() { const { t } = useLocale(); const [list, setList] = useState(() => { if (typeof window === "undefined") { return reversedTips; } try { const removedTipsString = localStorage.getItem("removedTipsIds"); if (removedTipsString !== null) { const removedTipsIds = removedTipsString.split(",").map((id) => parseInt(id, 10)); const filteredTips = reversedTips.filter((tip) => removedTipsIds.indexOf(tip.id) === -1); return filteredTips; } else { return reversedTips; } } catch { return reversedTips; } }); const handleRemoveItem = (id: number) => { setList((currentItems) => { const items = localStorage.getItem("removedTipsIds") || ""; const itemToRemoveIndex = currentItems.findIndex((item) => item.id === id); localStorage.setItem( "removedTipsIds", `${currentItems[itemToRemoveIndex].id.toString()}${items.length > 0 ? `,${items.split(",")}` : ""}` ); currentItems.splice(itemToRemoveIndex, 1); return [...currentItems]; }); }; const baseOriginalList = list.slice(0).reverse(); return (
{list.map((tip) => { return (
handleRemoveItem(tip.id), child: t("dismiss") }} />
); })}
); } export default memo(Tips);