Files
jitsi-meet/react/features/gifs/reducer.js
Robert Pintilii 190041fc5a feat(gif) Added GIF support (GIPHY integration) (#11021)
Show GIF menu in reactions menu
Search GIFs using the GIPHY API
Show GIFs as images in chat
Show GIFs on the thumbnail of the participant that sent it
Move GIF focus using up/ down arrows and send with Enter
Added analytics
2022-03-11 15:00:49 +02:00

74 lines
1.7 KiB
JavaScript

import { ReducerRegistry } from '../base/redux';
import {
ADD_GIF_FOR_PARTICIPANT,
HIDE_GIF_FOR_PARTICIPANT,
REMOVE_GIF_FOR_PARTICIPANT,
SET_GIF_DRAWER_VISIBILITY,
SET_GIF_MENU_VISIBILITY
} from './actionTypes';
const initialState = {
drawerVisible: false,
gifList: new Map(),
menuOpen: false
};
ReducerRegistry.register(
'features/gifs',
(state = initialState, action) => {
switch (action.type) {
case ADD_GIF_FOR_PARTICIPANT: {
const newList = state.gifList;
newList.set(action.participantId, {
gifUrl: action.gifUrl,
timeoutID: action.timeoutID
});
return {
...state,
gifList: newList
};
}
case REMOVE_GIF_FOR_PARTICIPANT: {
const newList = state.gifList;
newList.delete(action.participantId);
return {
...state,
gifList: newList
};
}
case HIDE_GIF_FOR_PARTICIPANT: {
const newList = state.gifList;
const gif = state.gifList.get(action.participantId);
newList.set(action.participantId, {
gifUrl: gif.gifUrl,
timeoutID: action.timeoutID
});
return {
...state,
gifList: newList
};
}
case SET_GIF_DRAWER_VISIBILITY:
return {
...state,
drawerVisible: action.visible
};
case SET_GIF_MENU_VISIBILITY:
return {
...state,
menuOpen: action.visible
};
}
return state;
});