import React, { useMemo } from 'react'; import get from 'lodash/get'; import { useDispatch, useSelector } from 'react-redux'; import CodeEditor from 'components/CodeEditor'; import ToggleSwitch from 'components/ToggleSwitch'; import AIAssist from 'components/AIAssist'; import { buildAiContextPayload } from 'utils/ai'; import { updateAppCode, toggleAppMode } from 'providers/ReduxStore/slices/collections'; import { saveRequest } from 'providers/ReduxStore/slices/collections/actions'; import { useTheme } from 'providers/Theme'; import StyledWrapper from './StyledWrapper'; const AppCodeEditor = ({ item, collection }) => { const dispatch = useDispatch(); const { displayedTheme } = useTheme(); const preferences = useSelector((state) => state.app.preferences); const code = item.draft ? get(item, 'draft.app.code', '') : get(item, 'app.code', ''); const enabled = item.draft ? get(item, 'draft.app.enabled', false) : get(item, 'app.enabled', false); const onEdit = (value) => dispatch(updateAppCode({ code: value, itemUid: item.uid, collectionUid: collection.uid })); const onToggle = () => dispatch(toggleAppMode({ enabled: !enabled, itemUid: item.uid, collectionUid: collection.uid })); const onSave = () => dispatch(saveRequest(item.uid, collection.uid)); const { requestContext, variables: aiVariables } = useMemo( () => buildAiContextPayload(item, collection), [item, collection] ); return (

When enabled, replaces the request/response panes with the app view for this request.

); }; export default AppCodeEditor;