| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- import { showOverflowDrawer } from '../toolbox/functions.web';
-
- import { GIF_PREFIX } from './constants';
-
- /**
- * Gets the URL of the GIF for the given participant or null if there's none.
- *
- * @param {Object} state - Redux state.
- * @param {string} participantId - Id of the participant for which to remove the GIF.
- * @returns {Object}
- */
- export function getGifForParticipant(state, participantId) {
- return isGifEnabled(state) ? state['features/gifs'].gifList.get(participantId) || {} : {};
- }
-
- /**
- * Whether or not the message is a GIF message.
- *
- * @param {string} message - Message to check.
- * @returns {boolean}
- */
- export function isGifMessage(message) {
- return message.trim().toLowerCase()
- .startsWith(GIF_PREFIX);
- }
-
- /**
- * Returns the visibility state of the gifs menu.
- *
- * @param {Object} state - The state of the application.
- * @returns {boolean}
- */
- export function isGifsMenuOpen(state) {
- const overflowDrawer = showOverflowDrawer(state);
- const { drawerVisible, menuOpen } = state['features/gifs'];
-
- return overflowDrawer ? drawerVisible : menuOpen;
- }
-
- /**
- * Returns the url of the gif selected in the gifs menu.
- *
- * @param {Object} gif - The gif data.
- * @returns {boolean}
- */
- export function getGifUrl(gif) {
- const embedUrl = gif?.embed_url || gif?.data?.embed_url || '';
- const idx = embedUrl.lastIndexOf('/');
- const id = embedUrl.substr(idx + 1);
-
- return `https://i.giphy.com/media/${id}/giphy.gif`;
- }
-
- /**
- * Formats the gif message.
- *
- * @param {string} url - GIF url.
- * @returns {string}
- */
- export function formatGifUrlMessage(url) {
- return `${GIF_PREFIX}${url}]`;
- }
-
- /**
- * Get the Giphy API Key from config.
- *
- * @param {Object} state - Redux state.
- * @returns {string}
- */
- export function getGifAPIKey(state) {
- return state['features/base/config']?.giphy?.sdkKey;
- }
-
- /**
- * Returns whether or not the feature is enabled.
- *
- * @param {Object} state - Redux state.
- * @returns {boolean}
- */
- export function isGifEnabled(state) {
- const { disableThirdPartyRequests } = state['features/base/config'];
- const { giphy } = state['features/base/config'];
-
- return !disableThirdPartyRequests && giphy?.enabled && Boolean(giphy?.sdkKey);
- }
-
- /**
- * Get the GIF display mode.
- *
- * @param {Object} state - Redux state.
- * @returns {string}
- */
- export function getGifDisplayMode(state) {
- const { giphy } = state['features/base/config'];
-
- return giphy?.displayMode || 'all';
- }
|