59 lines
1.2 KiB
TypeScript
59 lines
1.2 KiB
TypeScript
import { atom } from 'recoil';
|
|
|
|
export const $searchQuery = atom<string>({
|
|
key: 'SEARCH_QUERY',
|
|
default: '',
|
|
});
|
|
|
|
export const $jwtToken = atom<string>({
|
|
key: 'JWT_TOKEN',
|
|
default: null,
|
|
});
|
|
|
|
// conversation id
|
|
export const $selectedConversation = atom<string>({
|
|
key: 'SELECTED_CONVERSATION',
|
|
default: null,
|
|
});
|
|
|
|
// new convo page trigger
|
|
export const $newConvoPage = atom<boolean>({
|
|
key: 'NEW_CONVO_PAGE',
|
|
default: false,
|
|
});
|
|
|
|
// number of active lines
|
|
export const $numberActiveLines = atom<number>({
|
|
key: 'NUMBER_ACTIVE_LINES',
|
|
default: 0,
|
|
});
|
|
|
|
// max number of active streams
|
|
export const $maxNumberActiveStreams = atom<number>({
|
|
key: 'MAX_NUMBER_ACTIVE_STREAMS',
|
|
default: 0,
|
|
});
|
|
|
|
// ============
|
|
|
|
type DesktopMode = 'flowState' | 'overlayOnly' | 'terminal';
|
|
|
|
export const $desktopMode = atom<DesktopMode>({
|
|
key: 'DESKTOP_MODE',
|
|
default: 'terminal',
|
|
});
|
|
|
|
export const $selectedLineId = atom<string>({
|
|
key: 'SELECTED_LINE_ID',
|
|
default: null,
|
|
});
|
|
|
|
interface MediaSettings {
|
|
mode: 'audio' | 'video' | 'screen';
|
|
isMuted: boolean;
|
|
}
|
|
export const $mediaSettings = atom<MediaSettings>({
|
|
key: 'MEDIA_SETTINGS',
|
|
default: { isMuted: false, mode: 'audio' },
|
|
});
|