* ui: start highlight ui * ui: tag items * ui: connecting highlights to notes api... * Highlight feature refinements (#2948) * ui: move clips player to foss, connect notes api to hl * ui: tune note/hl editing, prevent zoom slider body from jumping around * ui: safe check for tag * ui: fix thumbnail gen * ui: fix thumbnail gen * ui: make player modal wider, add shadow * ui: custom warn barge for clips * ui: swap icon for note event wrapper * ui: rm other, fix cancel * ui: moving around creation modal * ui: bg tint * ui: rm disabled for text btn * ui: fix ownership sorting * ui: close player on bg click * ui: fix query, fix min distance for default range * ui: move hl list header out of list comp * ui: spot list header segmented size * Various improvements in highlights (#2955) * ui: update hl in hlPanel comp * ui: rm debug * ui: fix icons file --------- Co-authored-by: Sudheer Salavadi <connect.uxmaster@gmail.com>
110 lines
No EOL
3.3 KiB
TypeScript
110 lines
No EOL
3.3 KiB
TypeScript
import SimpleStore from './common/SimpleStore';
|
|
import type { Store, SessionFilesInfo } from './common/types';
|
|
|
|
import WebPlayer from './web/WebPlayer';
|
|
import WebLivePlayer from './web/WebLivePlayer';
|
|
|
|
import IOSPlayer from 'Player/mobile/IOSPlayer';
|
|
|
|
type IosState = typeof IOSPlayer.INITIAL_STATE;
|
|
type IOSPlayerStore = Store<IosState>;
|
|
export type IIosPlayer = IOSPlayer;
|
|
export type IIOSPlayerStore = IOSPlayerStore;
|
|
|
|
type WebState = typeof WebPlayer.INITIAL_STATE;
|
|
type WebPlayerStore = Store<WebState>;
|
|
export type IWebPlayer = WebPlayer;
|
|
export type IWebPlayerStore = WebPlayerStore;
|
|
|
|
type WebLiveState = typeof WebLivePlayer.INITIAL_STATE;
|
|
type WebLivePlayerStore = Store<WebLiveState>;
|
|
export type IWebLivePlayer = WebLivePlayer;
|
|
export type IWebLivePlayerStore = WebLivePlayerStore;
|
|
|
|
export function createIOSPlayer(
|
|
session: SessionFilesInfo,
|
|
wrapStore?: (s: IOSPlayerStore) => IOSPlayerStore,
|
|
uiErrorHandler?: { error: (msg: string) => void }
|
|
): [IIosPlayer, IOSPlayerStore] {
|
|
let store: IOSPlayerStore = new SimpleStore<IosState>({
|
|
...IOSPlayer.INITIAL_STATE,
|
|
});
|
|
if (wrapStore) {
|
|
store = wrapStore(store);
|
|
}
|
|
|
|
const player = new IOSPlayer(store, session, uiErrorHandler);
|
|
return [player, store];
|
|
}
|
|
|
|
export function createWebPlayer(
|
|
session: SessionFilesInfo,
|
|
wrapStore?: (s: IWebPlayerStore) => IWebPlayerStore,
|
|
uiErrorHandler?: { error: (msg: string) => void },
|
|
prefetched?: boolean,
|
|
): [IWebPlayer, IWebPlayerStore] {
|
|
let store: WebPlayerStore = new SimpleStore<WebState>({
|
|
...WebPlayer.INITIAL_STATE,
|
|
});
|
|
if (wrapStore) {
|
|
store = wrapStore(store);
|
|
}
|
|
|
|
const player = new WebPlayer(store, session, false, false, uiErrorHandler, prefetched);
|
|
return [player, store];
|
|
}
|
|
|
|
export function createClickMapPlayer(
|
|
session: SessionFilesInfo,
|
|
wrapStore?: (s: IWebPlayerStore) => IWebPlayerStore,
|
|
uiErrorHandler?: { error: (msg: string) => void }
|
|
): [IWebPlayer, IWebPlayerStore] {
|
|
let store: WebPlayerStore = new SimpleStore<WebState>({
|
|
...WebPlayer.INITIAL_STATE,
|
|
});
|
|
if (wrapStore) {
|
|
store = wrapStore(store);
|
|
}
|
|
|
|
const player = new WebPlayer(store, session, false, true, uiErrorHandler);
|
|
return [player, store];
|
|
}
|
|
|
|
export function createLiveWebPlayer(
|
|
session: SessionFilesInfo,
|
|
config: RTCIceServer[] | null,
|
|
agentId: number,
|
|
projectId: number,
|
|
wrapStore?: (s:IWebLivePlayerStore) => IWebLivePlayerStore,
|
|
uiErrorHandler?: { error: (msg: string) => void }
|
|
): [IWebLivePlayer, IWebLivePlayerStore] {
|
|
let store: WebLivePlayerStore = new SimpleStore<WebLiveState>({
|
|
...WebLivePlayer.INITIAL_STATE,
|
|
})
|
|
if (wrapStore) {
|
|
store = wrapStore(store)
|
|
}
|
|
|
|
const player = new WebLivePlayer(store, session, config, agentId, projectId, uiErrorHandler)
|
|
return [player, store]
|
|
}
|
|
|
|
export function createClipPlayer(
|
|
session: SessionFilesInfo,
|
|
wrapStore?: (s: IWebPlayerStore) => IWebPlayerStore,
|
|
uiErrorHandler?: { error: (msg: string) => void },
|
|
range?: [number, number]
|
|
): [IWebPlayer, IWebPlayerStore] {
|
|
let store: WebPlayerStore = new SimpleStore<WebState>({
|
|
...WebPlayer.INITIAL_STATE,
|
|
});
|
|
if (wrapStore) {
|
|
store = wrapStore(store);
|
|
}
|
|
|
|
const player = new WebPlayer(store, session, false, false, uiErrorHandler);
|
|
if (range && range[0] !== range[1]) {
|
|
player.toggleRange(range[0], range[1]);
|
|
}
|
|
return [player, store];
|
|
} |