import React, { useMemo, useCallback } from 'react'; import { Box } from '@rocket.chat/fuselage'; import { useTranslation } from '../../contexts/TranslationContext'; import { MemoizedSetting } from '../settings/Setting'; import { capitalize } from '../../helpers/capitalize'; import { useRouteParameter } from '../../contexts/RouterContext'; import MarkdownText from '../../components/basic/MarkdownText'; export const AppSettingsAssembler = ({ settings, values, handlers }) => {Object.values(settings).map((current) => { const { id } = current; return ; })} ; const useAppTranslation = (appId) => { const t = useTranslation(); const tApp = useCallback((key, ...args) => { if (!key) { return ''; } const appKey = `project:apps-${ appId }-${ key }`; return t(t.has(appKey) ? appKey : key, ...args); }, [t, appId]); tApp.has = useCallback((key) => { if (!key) { return false; } return t.has(`project:apps-${ appId }-${ key }`) || t.has(key); }, [t, appId]); return tApp; }; function AppSetting({ appSetting, onChange, value, ...props }) { const appId = useRouteParameter('id'); const tApp = useAppTranslation(appId); const { id, type, i18nLabel, i18nDescription, } = appSetting; const label = (i18nLabel && tApp(i18nLabel)) || (id || tApp(id)); const hint = useMemo(() => i18nDescription && , [i18nDescription, tApp]); return ; }