overleaf/services/web/frontend/js/features/editor-left-menu/components/sync-menu.tsx
M Fahru 7e5ccecc7c Change react key to use unique string with index
GitOrigin-RevId: 591cda98d0a34c777cc8a41b2ec64119a1226dfb
2022-11-09 09:03:13 +00:00

43 lines
1.1 KiB
TypeScript

import { useState } from 'react'
import { useTranslation } from 'react-i18next'
import importOverleafModules from '../../../../macros/import-overleaf-module.macro'
import getMeta from '../../../utils/meta'
export default function SyncMenu() {
const { t } = useTranslation()
const anonymous = getMeta('ol-anonymous') as boolean | undefined
const [editorLeftMenuSync] = useState<any[]>(
() =>
getMeta('editorLeftMenuSync') ||
importOverleafModules('editorLeftMenuSync')
)
if (anonymous === true || anonymous === undefined) {
return null
}
if (editorLeftMenuSync.length === 0) {
return null
}
return (
<>
<h4>{t('sync')}</h4>
<ul className="list-unstyled nav">
{editorLeftMenuSync.map(({ import: importObject }, index) => (
<li key={`editor-left-menu-sync-${index}`}>
<ModuleComponent Component={Object.values(importObject)[0]} />
</li>
))}
</ul>
</>
)
}
type ModuleComponentProps = {
Component: any
}
function ModuleComponent({ Component }: ModuleComponentProps) {
return <Component />
}