From 3c3361c765bb1e6614c535b15e88d5cf03b7f52a Mon Sep 17 00:00:00 2001 From: connorhaugh <49422820+connorhaugh@users.noreply.github.com> Date: Fri, 24 Feb 2023 10:40:56 -0500 Subject: [PATCH] fix: file upload on safari (#254) * fix: file upload on safari * fix: lint fix --- .../TranscriptWidget/LanguageSelector.jsx | 71 ++++++++--- .../LanguageSelector.test.jsx.snap | 114 ++++++++++-------- 2 files changed, 117 insertions(+), 68 deletions(-) diff --git a/src/editors/containers/VideoEditor/components/VideoSettingsModal/components/TranscriptWidget/LanguageSelector.jsx b/src/editors/containers/VideoEditor/components/VideoSettingsModal/components/TranscriptWidget/LanguageSelector.jsx index acfe89e59..511c59bed 100644 --- a/src/editors/containers/VideoEditor/components/VideoSettingsModal/components/TranscriptWidget/LanguageSelector.jsx +++ b/src/editors/containers/VideoEditor/components/VideoSettingsModal/components/TranscriptWidget/LanguageSelector.jsx @@ -2,8 +2,13 @@ import React from 'react'; import PropTypes from 'prop-types'; import { - Form, + ActionRow, + Dropdown, + Button, + Icon, } from '@edx/paragon'; + +import { Check } from '@edx/paragon/icons'; import { connect, useDispatch } from 'react-redux'; import { injectIntl, intlShape } from '@edx/frontend-platform/i18n'; import { thunkActions, selectors } from '../../../../../../data/redux'; @@ -15,9 +20,9 @@ import * as module from './LanguageSelector'; export const hooks = { onSelectLanguage: ({ dispatch, languageBeforeChange, triggerupload, setLocalLang, - }) => (event) => { + }) => ({ newLang }) => { // IF Language is unset, set language and begin upload prompt. - setLocalLang(event.target.value); + setLocalLang(newLang); if (languageBeforeChange === '') { triggerupload(); return; @@ -25,7 +30,7 @@ export const hooks = { // Else: update language dispatch( thunkActions.video.updateTranscriptLanguage({ - newLanguageCode: event.target.value, languageBeforeChange, + newLanguageCode: newLang, languageBeforeChange, }), ); }, @@ -54,27 +59,57 @@ export const LanguageSelector = ({ const onLanguageChange = module.hooks.onSelectLanguage({ dispatch: useDispatch(), languageBeforeChange: localLang, setLocalLang, triggerupload: input.click, }); + console.log({ localLang, language, openLanguages }); + + const getTitle = () => { + if (Object.prototype.hasOwnProperty.call(videoTranscriptLanguages, language)) { + return ( + + {videoTranscriptLanguages[language]} + + + + + ); + } + return ( + + {intl.formatMessage(messages.languageSelectPlaceholder)} + + + ); + }; + return ( -
- - + + + onLanguageChange(e)} + block + id={`selectLanguage-form-${index}`} + className="w-100" + variant="outline-primary" > + {getTitle()} + + {Object.entries(videoTranscriptLanguages).map(([lang, text]) => { - if (language === lang) { return (); } - if (lang === 'placeholder') { return (); } - if (openLanguages.some(row => row.includes(lang))) { - return (); + if (language === lang) { + return ({text}); } - return (); + if (openLanguages.some(row => row.includes(lang))) { + return ( onLanguageChange({ newLang: lang })}>{text}); + } + return ({text}); })} - - + + -
+ ); }; diff --git a/src/editors/containers/VideoEditor/components/VideoSettingsModal/components/TranscriptWidget/__snapshots__/LanguageSelector.test.jsx.snap b/src/editors/containers/VideoEditor/components/VideoSettingsModal/components/TranscriptWidget/__snapshots__/LanguageSelector.test.jsx.snap index 76243493c..be71c30ca 100644 --- a/src/editors/containers/VideoEditor/components/VideoSettingsModal/components/TranscriptWidget/__snapshots__/LanguageSelector.test.jsx.snap +++ b/src/editors/containers/VideoEditor/components/VideoSettingsModal/components/TranscriptWidget/__snapshots__/LanguageSelector.test.jsx.snap @@ -1,37 +1,45 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`LanguageSelector snapshot transcript option 1`] = ` -
- + - - - - - - + + + -
+ `; exports[`LanguageSelector snapshots -- no transcripts no Open Languages, all should be disabled 1`] = ` -
- + - - - - - - + + + -
+ `;