/* This file is part of the Notesnook project (https://notesnook.com/) * * Copyright (C) 2022 Streetwriters (Private) Limited * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ import React, { useEffect, useState } from "react"; import { FlatList, View } from "react-native"; import { DDS } from "../../services/device-detection"; import { eSubscribeEvent, eUnSubscribeEvent } from "../../services/event-manager"; import { useMessageStore } from "../../stores/use-message-store"; import { useThemeStore } from "../../stores/use-theme-store"; import { eCloseAnnouncementDialog, eOpenAnnouncementDialog } from "../../utils/events"; import BaseDialog from "../dialog/base-dialog"; import { allowedOnPlatform, renderItem } from "./functions"; export const AnnouncementDialog = () => { const colors = useThemeStore((state) => state.colors); const [visible, setVisible] = useState(false); const [info, setInfo] = useState(null); const remove = useMessageStore((state) => state.remove); useEffect(() => { eSubscribeEvent(eOpenAnnouncementDialog, open); eSubscribeEvent(eCloseAnnouncementDialog, close); return () => { eUnSubscribeEvent(eOpenAnnouncementDialog, open); eUnSubscribeEvent(eCloseAnnouncementDialog, close); }; }, [visible]); const open = (data) => { setInfo(data); setVisible(true); }; const close = () => { if (visible) { remove(info.id); setInfo(null); setVisible(false); } }; return ( allowedOnPlatform(item.platforms))} renderItem={renderItem} /> ); };