this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add settings to hide translate button for certain languages

+77 -1
+6 -1
src/components/status.jsx
··· 222 222 223 223 const [forceTranslate, setForceTranslate] = useState(false); 224 224 const targetLanguage = getTranslateTargetLanguage(true); 225 + const contentTranslationHideLanguages = 226 + snapStates.settings.contentTranslationHideLanguages || []; 225 227 if (!snapStates.settings.contentTranslation) enableTranslate = false; 226 228 227 229 const [showEdited, setShowEdited] = useState(false); ··· 907 909 !!content.trim() && 908 910 language && 909 911 language !== targetLanguage && 910 - !match([language], [targetLanguage])) || 912 + !match([language], [targetLanguage]) && 913 + !contentTranslationHideLanguages.find( 914 + (l) => language === l || match([language], [l]), 915 + )) || 911 916 forceTranslate) && ( 912 917 <TranslationBlock 913 918 forceTranslate={forceTranslate}
+19
src/pages/settings.css
··· 123 123 #settings-container .range-group input[type='range'] { 124 124 flex-grow: 1; 125 125 } 126 + 127 + #settings-container .checkbox-fields { 128 + border: 1px solid var(--outline-color); 129 + background-color: var(--bg-faded-color); 130 + border-radius: 8px; 131 + margin: 8px 0; 132 + max-height: 6.5em; 133 + overflow: auto; 134 + display: flex; 135 + flex-wrap: wrap; 136 + font-size: 90%; 137 + } 138 + #settings-container .checkbox-fieldset label { 139 + flex: 1 0 10em; 140 + padding: 4px; 141 + display: flex; 142 + gap: 4px; 143 + align-items: flex-start; 144 + }
+44
src/pages/settings.jsx
··· 194 194 ))} 195 195 </select> 196 196 </label> 197 + <p class="checkbox-fieldset"> 198 + <small> 199 + Hide "Translate" button for 200 + {snapStates.settings.contentTranslationHideLanguages 201 + .length > 0 && ( 202 + <> 203 + {' '} 204 + ( 205 + { 206 + snapStates.settings.contentTranslationHideLanguages 207 + .length 208 + } 209 + ) 210 + </> 211 + )} 212 + : 213 + </small> 214 + <div class="checkbox-fields"> 215 + {targetLanguages.map((lang) => ( 216 + <label> 217 + <input 218 + type="checkbox" 219 + checked={snapStates.settings.contentTranslationHideLanguages.includes( 220 + lang.code, 221 + )} 222 + onChange={(e) => { 223 + const { checked } = e.target; 224 + if (checked) { 225 + states.settings.contentTranslationHideLanguages.push( 226 + lang.code, 227 + ); 228 + } else { 229 + states.settings.contentTranslationHideLanguages = 230 + snapStates.settings.contentTranslationHideLanguages.filter( 231 + (code) => code !== lang.code, 232 + ); 233 + } 234 + }} 235 + />{' '} 236 + {lang.name} 237 + </label> 238 + ))} 239 + </div> 240 + </p> 197 241 <p> 198 242 <small> 199 243 Note: This feature uses an external API to translate,
+8
src/utils/states.js
··· 48 48 store.account.get('settings-contentTranslation') ?? true, 49 49 contentTranslationTargetLanguage: 50 50 store.account.get('settings-contentTranslationTargetLanguage') || null, 51 + contentTranslationHideLanguages: 52 + store.account.get('settings-contentTranslationHideLanguages') || [], 51 53 }, 52 54 }); 53 55 ··· 75 77 if (path.join('.') === 'settings.contentTranslationTargetLanguage') { 76 78 console.log('SET', value); 77 79 store.account.set('settings-contentTranslationTargetLanguage', value); 80 + } 81 + if (/^settings\.contentTranslationHideLanguages/i.test(path.join('.'))) { 82 + store.account.set( 83 + 'settings-contentTranslationHideLanguages', 84 + states.settings.contentTranslationHideLanguages, 85 + ); 78 86 } 79 87 if (path?.[0] === 'shortcuts') { 80 88 store.account.set('shortcuts', states.shortcuts);