* @param {MediaProps} props
* @return {object}
*/
-export const deployPictureInPicture = (statusId, accountId, playerType, props) => ({
- type: PICTURE_IN_PICTURE_DEPLOY,
- statusId,
- accountId,
- playerType,
- props,
-});
+export const deployPictureInPicture = (statusId, accountId, playerType, props) => {
+ return (dispatch, getState) => {
+ // Do not open a player for a toot that does not exist
+ if (getState().hasIn(['statuses', statusId])) {
+ dispatch({
+ type: PICTURE_IN_PICTURE_DEPLOY,
+ statusId,
+ accountId,
+ playerType,
+ props,
+ });
+ }
+ };
+};
/*
* @return {object}
import { PICTURE_IN_PICTURE_DEPLOY, PICTURE_IN_PICTURE_REMOVE } from 'mastodon/actions/picture_in_picture';
+import { TIMELINE_DELETE } from '../actions/timelines';
const initialState = {
statusId: null,
return { statusId: action.statusId, accountId: action.accountId, type: action.playerType, ...action.props };
case PICTURE_IN_PICTURE_REMOVE:
return { ...initialState };
+ case TIMELINE_DELETE:
+ return (state.statusId === action.id) ? { ...initialState } : state;
default:
return state;
}