import { Segmented } from "antd"; import { useEffect, useState } from "react"; import { useIntl } from "react-intl"; import type { IChannel } from "../channel/Channel" import ChannelPicker from "../channel/ChannelPicker"; interface IWidget { currMode?: string; channel: string | null; onModeChange?: Function; onChannelChange?: Function; } const ModeSwitchWidget = ({ currMode = "read", onModeChange, channel, onChannelChange, }: IWidget) => { const intl = useIntl(); const [mode, setMode] = useState(currMode); const [newMode, setNewMode] = useState(); const [channelPickerOpen, setChannelPickerOpen] = useState(false); useEffect(() => { setMode(currMode); }, [currMode]); return ( <> { const _mode = value.toString(); if (_mode !== "read" && channel === null) { setChannelPickerOpen(true); setNewMode(_mode); } else { if (typeof onModeChange !== "undefined") { onModeChange(_mode); } setMode(_mode); } }} /> setChannelPickerOpen(false)} onSelect={(channels: IChannel[]) => { if (newMode) { setMode(newMode); } if (typeof onChannelChange !== "undefined") { onChannelChange(channels, newMode); } }} /> ); }; export default ModeSwitchWidget;