import React, { useEffect } from 'react'; import ModuleCard from 'Components/Client/Modules/ModuleCard'; import { modules as list } from './'; import withPageTitle from 'HOCs/withPageTitle'; import { userService } from 'App/services'; import { toast } from 'react-toastify'; import { useStore } from "App/mstore"; import { observer } from 'mobx-react-lite'; function Modules() { const { userStore } = useStore(); const updateModule = userStore.updateModule; const modules = userStore.account.settings?.modules ?? []; const isEnterprise = userStore.account.edition === 'ee'; const [modulesState, setModulesState] = React.useState([]); const onToggle = async (module: any) => { try { const isEnabled = !module.isEnabled; module.isEnabled = isEnabled; setModulesState((prevState) => [...prevState]); await userService.saveModules({ module: module.key, status: isEnabled, }); updateModule(module.key); toast.success(`Module ${module.label} ${!isEnabled ? 'enabled' : 'disabled'}`); } catch (err) { console.error(err); toast.error(`Failed to ${module.isEnabled ? 'disable' : 'enable'} module ${module.label}`); module.isEnabled = !module.isEnabled; setModulesState((prevState) => [...prevState]); } }; useEffect(() => { list.forEach((module) => { module.isEnabled = modules.includes(module.key); }); setModulesState(list.filter((module) => !module.hidden && (!module.enterprise || isEnterprise))); }, [modules]); return (

Modules

  • OpenReplay's modules are a collection of advanced features that provide enhanced functionality.
  • Easily enable any desired module within the user interface to access its capabilities
{modulesState.map((module) => (
))}
); } export default withPageTitle('Modules - OpenReplay Preferences')(observer(Modules));