Files
CT/src/View/Components/chatViewToggleButton.tsx
T
2026-09-23 00:09:09 +02:00

31 lines
844 B
TypeScript

import { RibbonButton } from "./ribbonButton";
import * as React from "../../react";
import ChatViewModel, {
ChatPageTypes,
} from "../../ViewModel/Chat/chatViewModel";
export function ChatViewToggleButton(
label: string,
icon: string,
page: ChatPageTypes,
chatViewModel: ChatViewModel,
) {
function select() {
chatViewModel.openPage(page);
}
const isSelected = React.createProxyState(
[chatViewModel.selectedPage],
() => chatViewModel.selectedPage.value == page,
);
const isHighlighted = new React.State(false);
if (page == ChatPageTypes.Messages) {
chatViewModel.hasUnreadMessages.subscribe(
(hasUnreadMessages) => (isHighlighted.value = hasUnreadMessages),
);
}
return RibbonButton(label, icon, isSelected, select, isHighlighted);
}