diff --git a/modules/debugger/Debugger.tsx b/modules/debugger/Debugger.tsx index 81b658fb..8f677533 100644 --- a/modules/debugger/Debugger.tsx +++ b/modules/debugger/Debugger.tsx @@ -6,7 +6,7 @@ import {useStream} from "ui/effects"; // @ts-ignore import bottleExample from "raw-loader!./bottleExample.txt"; import {ApplicationContext} from "cad/context"; -import {AppContext} from "cad/dom/components/AppContext"; +import {ReactApplicationContext} from "cad/dom/ReactApplicationContext"; export const DebugMode$ = state(false); @@ -14,7 +14,7 @@ export function Debugger() { const debugMode: boolean = useStream(DebugMode$); const [codeText, setCodeText] = useState(bottleExample); - const context: ApplicationContext = useContext(AppContext); + const context: ApplicationContext = useContext(ReactApplicationContext); function evalCode() { eval(codeText); diff --git a/modules/ui/bind.js b/modules/ui/bind.js index cd59bd87..4251d77b 100644 --- a/modules/ui/bind.js +++ b/modules/ui/bind.js @@ -1,12 +1,12 @@ import React, {useContext} from 'react'; import {useStreamWithUpdater} from "./effects"; -import {AppContext} from "../../web/app/cad/dom/components/AppContext"; +import {ReactApplicationContext} from "cad/dom/ReactApplicationContext"; export default function bind(streamProvider) { return function (Component) { return function Connected (props) { - const context = useContext(AppContext); + const context = useContext(ReactApplicationContext); const [value, updater] = useStreamWithUpdater(streamProvider(context, props)); diff --git a/web/app/cad/actions/ActionButtonBehavior.jsx b/web/app/cad/actions/ActionButtonBehavior.jsx index e35143cf..eca71894 100644 --- a/web/app/cad/actions/ActionButtonBehavior.jsx +++ b/web/app/cad/actions/ActionButtonBehavior.jsx @@ -1,9 +1,9 @@ import React, {useContext} from 'react'; -import {AppContext} from "../dom/components/AppContext"; +import {ReactApplicationContext} from "../dom/ReactApplicationContext"; export function ActionButtonBehavior({children, actionId}) { - const ctx = useContext(AppContext); + const ctx = useContext(ReactApplicationContext); const request = {actionId, x: 0, y: 0}; diff --git a/web/app/cad/assembly/ui/AssemblyView.tsx b/web/app/cad/assembly/ui/AssemblyView.tsx index 603f9cac..c2d788de 100644 --- a/web/app/cad/assembly/ui/AssemblyView.tsx +++ b/web/app/cad/assembly/ui/AssemblyView.tsx @@ -1,7 +1,7 @@ import React, {useContext, useEffect} from 'react'; import {useStream} from "ui/effects"; import {Status} from "ui/components/Status"; -import {AppContext} from "../../dom/components/AppContext"; +import {ReactApplicationContext} from "../../dom/ReactApplicationContext"; import cx from 'classnames'; import {NoIcon} from "../../../sketcher/icons/NoIcon"; import ls from "../../../sketcher/components/ConstraintExplorer.less"; @@ -14,7 +14,7 @@ import {AssemblyConstraintsSchemas} from "../assemblySchemas"; export function AssemblyView() { - const ctx = useContext(AppContext); + const ctx = useContext(ReactApplicationContext); const constraints = useStream(ctx => ctx.assemblyService.constraints$); const status = useStream(ctx => ctx.assemblyService.status$); @@ -35,7 +35,7 @@ export function AssemblyConstraintButton({prefix='', constraint: c, ...props}: { props?: React.HTMLAttributes }) { - const ctx: ApplicationContext = useContext(AppContext); + const ctx: ApplicationContext = useContext(ReactApplicationContext); const edit = (constraint) => { if (constraint.editable) { diff --git a/web/app/cad/assembly/ui/ModellerContextualActions.tsx b/web/app/cad/assembly/ui/ModellerContextualActions.tsx index 89dbb54b..16644846 100644 --- a/web/app/cad/assembly/ui/ModellerContextualActions.tsx +++ b/web/app/cad/assembly/ui/ModellerContextualActions.tsx @@ -1,5 +1,5 @@ import React, {useContext} from 'react'; -import {AppContext} from "../../dom/components/AppContext"; +import {ReactApplicationContext} from "../../dom/ReactApplicationContext"; import {useStream} from "ui/effects"; import {Dialog} from "ui/components/Dialog"; import {matchAvailableSubjects, MatchIndex, matchSelection} from "../../../sketcher/selectionMatcher"; @@ -8,7 +8,7 @@ import {AssemblyConstraintsSchemas} from "../assemblySchemas"; export function ModellerContextualActions() { - const ctx = useContext(AppContext); + const ctx = useContext(ReactApplicationContext); const selection: string[] = useStream(ctx => ctx.streams.selection.all); diff --git a/web/app/cad/assembly/ui/StepByStepSimulation.tsx b/web/app/cad/assembly/ui/StepByStepSimulation.tsx index 9250f5f2..784d09bd 100644 --- a/web/app/cad/assembly/ui/StepByStepSimulation.tsx +++ b/web/app/cad/assembly/ui/StepByStepSimulation.tsx @@ -1,14 +1,11 @@ import React, {useContext, useState} from "react"; -import {AppContext} from "../../dom/components/AppContext"; +import {ReactApplicationContext} from "../../dom/ReactApplicationContext"; import {AssemblyProcess} from "../assemblySolver"; import {useStream} from "ui/effects"; -import {MShell} from "../../model/mshell"; -import CSys from "math/csys"; -import {Matrix3x4} from "math/matrix"; export function StepByStepSimulation() { - const ctx = useContext(AppContext); + const ctx = useContext(ReactApplicationContext); const [process, setProcess] = useState(null); const constraints = useStream(ctx => ctx.assemblyService.constraints$); diff --git a/web/app/cad/attributes/ui/DisplayOptionsDialog.tsx b/web/app/cad/attributes/ui/DisplayOptionsDialog.tsx index 4de42418..3183d3b7 100644 --- a/web/app/cad/attributes/ui/DisplayOptionsDialog.tsx +++ b/web/app/cad/attributes/ui/DisplayOptionsDialog.tsx @@ -5,7 +5,7 @@ import Field from "ui/components/controls/Field"; import Label from "ui/components/controls/Label"; import {ColorControl} from "ui/components/controls/ColorControl"; import CheckboxControl from "ui/components/controls/CheckboxControl"; -import {AppContext} from "cad/dom/components/AppContext"; +import {ReactApplicationContext} from "cad/dom/ReactApplicationContext"; import {ModelAttributes} from "cad/attributes/attributesService"; import {GenericWizard} from "ui/components/GenericWizard"; import {View} from "cad/scene/views/view"; @@ -44,7 +44,7 @@ export interface DisplayOptionsViewProps { export function DisplayOptionsView(props: DisplayOptionsViewProps) { - const ctx = useContext(AppContext); + const ctx = useContext(ReactApplicationContext); const streamsAndPatchers: [ModelAttributes, any][] = []; useEffect(()=>{ diff --git a/web/app/cad/craft/defeature/DefeatureFaceWizard.tsx b/web/app/cad/craft/defeature/DefeatureFaceWizard.tsx index af29ecc2..c18c00f9 100644 --- a/web/app/cad/craft/defeature/DefeatureFaceWizard.tsx +++ b/web/app/cad/craft/defeature/DefeatureFaceWizard.tsx @@ -1,7 +1,7 @@ -import React, {useContext, useEffect} from 'react'; +import React, {useContext} from 'react'; import {Dialog} from "ui/components/Dialog"; import {NOOP} from "gems/func"; -import {AppContext} from "../../dom/components/AppContext"; +import {ReactApplicationContext} from "../../dom/ReactApplicationContext"; import {readShellEntityFromJson} from "../../scene/wrappers/entityIO"; import {DEFLECTION} from "../e0/common"; import {MFace} from "../../model/mface"; @@ -9,7 +9,7 @@ import {MFace} from "../../model/mface"; export function DefeatureFaceWizard() { - const ctx = useContext(AppContext); + const ctx = useContext(ReactApplicationContext); return diff --git a/web/app/cad/craft/ui/ModelButtonBehaviour.tsx b/web/app/cad/craft/ui/ModelButtonBehaviour.tsx index dd2c27aa..7d5d6a93 100644 --- a/web/app/cad/craft/ui/ModelButtonBehaviour.tsx +++ b/web/app/cad/craft/ui/ModelButtonBehaviour.tsx @@ -1,5 +1,5 @@ import React, {useContext} from 'react'; -import {AppContext} from "cad/dom/components/AppContext"; +import {ReactApplicationContext} from "cad/dom/ReactApplicationContext"; import {useStream} from "ui/effects"; import {MSketchObject} from "cad/model/msketchObject"; import {VisibleSwitch} from "cad/craft/ui/SceneInlineObjectExplorer"; @@ -24,7 +24,7 @@ export function ModelButtonBehavior({children, model, controlVisibility}: { controlVisibility?: boolean }) { - const ctx = useContext(AppContext); + const ctx = useContext(ReactApplicationContext); if (controlVisibility === undefined) { controlVisibility = !model.parent diff --git a/web/app/cad/craft/ui/SelectedModificationInfo.jsx b/web/app/cad/craft/ui/SelectedModificationInfo.jsx index a709d529..6bcae4b5 100644 --- a/web/app/cad/craft/ui/SelectedModificationInfo.jsx +++ b/web/app/cad/craft/ui/SelectedModificationInfo.jsx @@ -9,9 +9,8 @@ import mapContext from 'ui/mapContext'; import {EMPTY_OBJECT} from 'gems/objects'; import ButtonGroup from 'ui/components/controls/ButtonGroup'; import Button from 'ui/components/controls/Button'; -import {removeAndDropDependants, removeFeature} from '../craftHistoryUtils'; -import RenderObject from 'ui/components/RenderObject'; -import {AppContext} from "cad/dom/components/AppContext"; +import {removeFeature} from '../craftHistoryUtils'; +import {ReactApplicationContext} from "cad/dom/ReactApplicationContext"; import {resolveAppearance} from "cad/craft/operationHelper"; function SelectedModificationInfo({ history, index, @@ -19,7 +18,7 @@ function SelectedModificationInfo({ history, index, locationHint: lh, drop, edit, close}) { - const ctx = useContext(AppContext); + const ctx = useContext(ReactApplicationContext); useEffect(() => { diff --git a/web/app/cad/craft/wizard/components/Wizard.tsx b/web/app/cad/craft/wizard/components/Wizard.tsx index d619d6b4..c0dacd22 100644 --- a/web/app/cad/craft/wizard/components/Wizard.tsx +++ b/web/app/cad/craft/wizard/components/Wizard.tsx @@ -5,7 +5,7 @@ import CadError from '../../../../utils/errors'; import {FormEditContext, FormParamsContext, FormPathContext, FormStateContext} from './form/Form'; import {GenericWizard} from "ui/components/GenericWizard"; import {useStream} from "ui/effects"; -import {AppContext} from "cad/dom/components/AppContext"; +import {ReactApplicationContext} from "cad/dom/ReactApplicationContext"; import {resolveAppearance} from "cad/craft/operationHelper"; import ImgIcon from "ui/components/ImgIcon"; @@ -21,7 +21,7 @@ interface WizardProps { export default function Wizard(props: WizardProps) { - const ctx = useContext(AppContext); + const ctx = useContext(ReactApplicationContext); const state = useStream(ctx => ctx.wizardService.state$); const workingRequest = useStream(ctx => ctx.wizardService.workingRequest$); diff --git a/web/app/cad/craft/wizard/components/WizardManager.tsx b/web/app/cad/craft/wizard/components/WizardManager.tsx index ac60cfa8..355c808b 100644 --- a/web/app/cad/craft/wizard/components/WizardManager.tsx +++ b/web/app/cad/craft/wizard/components/WizardManager.tsx @@ -1,12 +1,12 @@ import React, {useContext} from 'react'; import Wizard from './Wizard'; import {useStream} from "ui/effects"; -import {AppContext} from "cad/dom/components/AppContext"; +import {ReactApplicationContext} from "cad/dom/ReactApplicationContext"; import {ErrorBoundary} from "ui/errorBoundary"; export default function WizardManager() { - const ctx = useContext(AppContext); + const ctx = useContext(ReactApplicationContext); const workingRequest = useStream(ctx => ctx.wizardService.workingRequest$); if (!workingRequest) { diff --git a/web/app/cad/craft/wizard/components/form/EntityList.jsx b/web/app/cad/craft/wizard/components/form/EntityList.jsx index 6bd914a8..685891d8 100644 --- a/web/app/cad/craft/wizard/components/form/EntityList.jsx +++ b/web/app/cad/craft/wizard/components/form/EntityList.jsx @@ -6,7 +6,7 @@ import Fa from 'ui/components/Fa'; import {attachToForm} from './Form'; import {camelCaseSplitToStr} from 'gems/camelCaseSplit'; import {EMPTY_ARRAY, removeInPlace} from 'gems/iterables'; -import {AppContext} from "cad/dom/components/AppContext"; +import {ReactApplicationContext} from "cad/dom/ReactApplicationContext"; import produce from "immer"; import {FiEdit} from "react-icons/all"; import {MFace} from "cad/model/mface"; @@ -16,7 +16,7 @@ import {SafeLength} from "cad/craft/ui/SafeLength"; function EntityList(props) { - const ctx = useContext(AppContext); + const ctx = useContext(ReactApplicationContext); let {name, label, active, setActive, value, placeholder, readOnly, entityRenderer} = props; @@ -61,7 +61,7 @@ function EntityList(props) { } function EditButton({model}) { - const ctx = useContext(AppContext); + const ctx = useContext(ReactApplicationContext); if (!(model instanceof MFace)) { return null; diff --git a/web/app/cad/craft/wizard/components/form/Form.tsx b/web/app/cad/craft/wizard/components/form/Form.tsx index c5450959..51ccb922 100644 --- a/web/app/cad/craft/wizard/components/form/Form.tsx +++ b/web/app/cad/craft/wizard/components/form/Form.tsx @@ -5,7 +5,6 @@ import Stack from 'ui/components/Stack'; import {camelCaseSplitToStr} from 'gems/camelCaseSplit'; import {ParamsPath, ParamsPathSegment, WizardState} from "cad/craft/wizard/wizardTypes"; import {flattenPath, OperationParams, OperationParamValue} from "cad/craft/schema/schema"; -import {AppContext} from "cad/dom/components/AppContext"; interface FormEdit { onChange: any; diff --git a/web/app/cad/dom/ReactApplicationContext.ts b/web/app/cad/dom/ReactApplicationContext.ts new file mode 100644 index 00000000..e419a4a3 --- /dev/null +++ b/web/app/cad/dom/ReactApplicationContext.ts @@ -0,0 +1,4 @@ +import React from "react"; +import {ApplicationContext} from "cad/context"; + +export const ReactApplicationContext: React.Context = React.createContext(null); \ No newline at end of file diff --git a/web/app/cad/dom/components/AppContext.ts b/web/app/cad/dom/components/AppContext.ts deleted file mode 100644 index c19fc20e..00000000 --- a/web/app/cad/dom/components/AppContext.ts +++ /dev/null @@ -1,4 +0,0 @@ -import React from "react"; -import {ApplicationContext} from "cad/context"; - -export const AppContext: React.Context = React.createContext(null); \ No newline at end of file diff --git a/web/app/cad/dom/components/AppTabs.jsx b/web/app/cad/dom/components/AppTabs.jsx index 09875302..5cdaf293 100644 --- a/web/app/cad/dom/components/AppTabs.jsx +++ b/web/app/cad/dom/components/AppTabs.jsx @@ -7,12 +7,12 @@ import ls from './AppTabs.less'; import TabSwitcher, {Tab} from 'ui/components/TabSwticher'; import Card from "ui/components/Card"; import {useStreamWithUpdater} from "ui/effects"; -import {AppContext} from "./AppContext"; +import {ReactApplicationContext} from "../ReactApplicationContext"; export default function AppTabs({}) { const [{tabs, activeTab}, updateTabs] = useStreamWithUpdater(ctx => ctx.appTabsService.tabs$); - const ctx = useContext(AppContext); + const ctx = useContext(ReactApplicationContext); const switchTo = index => updateTabs(({tabs}) => ({tabs, activeTab: index})); diff --git a/web/app/cad/dom/components/CameraControl.tsx b/web/app/cad/dom/components/CameraControl.tsx index c999c587..7b9c37f9 100644 --- a/web/app/cad/dom/components/CameraControl.tsx +++ b/web/app/cad/dom/components/CameraControl.tsx @@ -1,11 +1,11 @@ import React, {useContext, useEffect} from 'react'; import ls from './CameraControl.less'; import cameraControlRenderer from 'scene/cameraControlRenderer'; -import {AppContext} from "cad/dom/components/AppContext"; +import {ReactApplicationContext} from "cad/dom/ReactApplicationContext"; export default function CameraControl() { - const ctx = useContext(AppContext); + const ctx = useContext(ReactApplicationContext); const domRef = React.useRef(null); diff --git a/web/app/cad/dom/components/SelectionView.tsx b/web/app/cad/dom/components/SelectionView.tsx index 01e550a6..6e60f53f 100644 --- a/web/app/cad/dom/components/SelectionView.tsx +++ b/web/app/cad/dom/components/SelectionView.tsx @@ -1,7 +1,7 @@ import React, {useContext} from 'react'; import {useStream, useStreamWithPatcher} from "ui/effects"; import {SELECTABLE_ENTITIES} from "../../scene/entityContextBundle"; -import {AppContext} from "cad/dom/components/AppContext"; +import {ReactApplicationContext} from "cad/dom/ReactApplicationContext"; import Field from "ui/components/controls/Field"; import {InnerFolder} from "ui/components/Folder"; import Label from "ui/components/controls/Label"; @@ -10,7 +10,6 @@ import Stack from "ui/components/Stack"; import {ColorControl} from "ui/components/controls/ColorControl"; - export function SelectionView() { const selections = []; @@ -48,7 +47,7 @@ interface SelectedModelViewProps { function SelectedModelView(props: SelectedModelViewProps) { - const ctx = useContext(AppContext); + const ctx = useContext(ReactApplicationContext); const model = ctx.cadRegistry.find(props.modelId); const [attrs, patchAttrs] = useStreamWithPatcher(ctx => ctx.attributesService.streams.get(props.modelId)); diff --git a/web/app/cad/dom/components/UISystem.tsx b/web/app/cad/dom/components/UISystem.tsx index 0890f9cb..d09ebb37 100644 --- a/web/app/cad/dom/components/UISystem.tsx +++ b/web/app/cad/dom/components/UISystem.tsx @@ -2,11 +2,10 @@ import React, {useContext} from 'react'; import MenuHolder from '../menu/MenuHolder'; import ActionInfo from '../actionInfo/ActionInfo'; -import {ContributedComponents} from './ContributedComponents'; import {stream} from 'lstream'; import {DocumentationWindow} from 'doc/DocumentationWindow'; import {Scope} from "../../../sketcher/components/Scope"; -import {AppContext} from "./AppContext"; +import {ReactApplicationContext} from "../ReactApplicationContext"; const onCloseAll = stream(); @@ -15,7 +14,7 @@ export const UISystemContext = React.createContext(null); export default function UISystem({children, ...props}) { - const ctx = useContext(AppContext); + const ctx = useContext(ReactApplicationContext); const uiCxt = { closeAllUpPopups: () => { diff --git a/web/app/cad/dom/components/WebApplication.jsx b/web/app/cad/dom/components/WebApplication.jsx index 7c2d5c38..5c0aa835 100644 --- a/web/app/cad/dom/components/WebApplication.jsx +++ b/web/app/cad/dom/components/WebApplication.jsx @@ -3,15 +3,15 @@ import React from 'react'; import 'ui/styles/global/index.less'; import AppTabs from "./AppTabs"; import {StreamsContext} from "ui/streamsContext"; -import {AppContext} from "./AppContext"; +import {ReactApplicationContext} from "../ReactApplicationContext"; import {Debugger} from "debugger/Debugger"; export default function WebApplication(props) { const {appContext} = props; return - + - + } diff --git a/web/app/cad/expressions/Expressions.tsx b/web/app/cad/expressions/Expressions.tsx index 2ecb365d..7bbde2d6 100644 --- a/web/app/cad/expressions/Expressions.tsx +++ b/web/app/cad/expressions/Expressions.tsx @@ -9,7 +9,7 @@ import cx from 'classnames'; import {actionDecorator} from '../actions/actionDecorators'; import Folder from 'ui/components/Folder'; import Stack from 'ui/components/Stack'; -import {AppContext} from "../dom/components/AppContext"; +import {ReactApplicationContext} from "../dom/ReactApplicationContext"; import {useStream} from "ui/effects"; @@ -17,7 +17,7 @@ export default function Expressions() { const [activeTab, setActiveTab] = useState('Script'); - const ctx = useContext(AppContext); + const ctx = useContext(ReactApplicationContext); const synced = useStream(ctx => ctx.expressionService.synced$); const errors = useStream(ctx => ctx.expressionService.errors$); const reevaluateExpressions = ctx.expressionService.reevaluateExpressions; diff --git a/web/app/cad/location/LocationDialog.tsx b/web/app/cad/location/LocationDialog.tsx index 7d12a889..6fd09263 100644 --- a/web/app/cad/location/LocationDialog.tsx +++ b/web/app/cad/location/LocationDialog.tsx @@ -1,6 +1,6 @@ import React, {useCallback, useContext, useEffect} from 'react'; import {useStreamWithUpdater} from "ui/effects"; -import {AppContext} from "../dom/components/AppContext"; +import {ReactApplicationContext} from "../dom/ReactApplicationContext"; import {GenericWizard} from "ui/components/GenericWizard"; import Field from "ui/components/controls/Field"; import {Group} from "../craft/wizard/components/form/Form"; @@ -8,13 +8,11 @@ import Label from "ui/components/controls/Label"; import Folder from "ui/components/Folder"; import {never} from "lstream"; import NumberControl from "ui/components/controls/NumberControl"; - -import {LocationControl} from "./LocationControl"; import {Matrix3x4} from "math/matrix"; export function LocationDialog() { - const ctx = useContext(AppContext); + const ctx = useContext(ReactApplicationContext); const [req, setReq] = useStreamWithUpdater(ctx => ctx.locationService.editLocationRequest$); diff --git a/web/app/cad/partImport/ui/CatalogPartChooser.tsx b/web/app/cad/partImport/ui/CatalogPartChooser.tsx index bb40661e..36ec69fd 100644 --- a/web/app/cad/partImport/ui/CatalogPartChooser.tsx +++ b/web/app/cad/partImport/ui/CatalogPartChooser.tsx @@ -1,7 +1,7 @@ -import React, {useContext, useState} from 'react'; +import React, {useContext} from 'react'; import {useStreamWithUpdater} from "ui/effects"; import {PartCatalog} from "./PartCatalog"; -import {AppContext} from "../../dom/components/AppContext"; +import {ReactApplicationContext} from "cad/dom/ReactApplicationContext"; import {Dialog} from "ui/components/Dialog"; import {useDataLoader} from "ui/useDataLoader"; import {WhenDataReady} from "ui/components/WhenDataReady"; @@ -11,7 +11,7 @@ import theme from "ui/styles/theme"; export function CatalogPartChooser() { const [req, setReq] = useStreamWithUpdater(ctx => ctx.remotePartsService.choosePartRequest$); - const ctx = useContext(AppContext); + const ctx = useContext(ReactApplicationContext); const loader = useDataLoader('parts', () => ctx.remotePartsService.loadDefinedCatalogs()); if (!req) { diff --git a/web/app/cad/partImport/ui/PartRefControl.tsx b/web/app/cad/partImport/ui/PartRefControl.tsx index dfe78369..1b45f84d 100644 --- a/web/app/cad/partImport/ui/PartRefControl.tsx +++ b/web/app/cad/partImport/ui/PartRefControl.tsx @@ -1,7 +1,7 @@ import React, {useContext, useEffect} from 'react'; import {attachToForm, formField} from "../../craft/wizard/components/form/Form"; import InputControl from "ui/components/controls/InputControl"; -import {AppContext} from "../../dom/components/AppContext"; +import {ReactApplicationContext} from "../../dom/ReactApplicationContext"; export function PartRefControl(props) { @@ -14,7 +14,7 @@ export function PartRefControl(props) { }, []); - const ctx = useContext(AppContext); + const ctx = useContext(ReactApplicationContext); const openChooser = e => {