import { createAction } from '@reduxjs/toolkit'; import type { PIPMediaProps } from 'flavours/glitch/reducers/picture_in_picture'; import { createAppAsyncThunk } from 'flavours/glitch/store/typed_functions'; interface DeployParams { statusId: string; accountId: string; playerType: 'audio' | 'video'; props: PIPMediaProps; } export const removePictureInPicture = createAction('pip/remove'); export const deployPictureInPictureAction = createAction('pip/deploy'); export const deployPictureInPicture = createAppAsyncThunk( 'pip/deploy', (args: DeployParams, { dispatch, getState }) => { const { statusId } = args; // Do not open a player for a toot that does not exist // @ts-expect-error state.statuses is not yet typed // eslint-disable-next-line @typescript-eslint/no-unsafe-call if (getState().hasIn(['statuses', statusId])) { dispatch(deployPictureInPictureAction(args)); } }, );