fixe form builder

This commit is contained in:
IDONTSUDO 2024-10-05 14:16:28 +03:00
parent c19e4c684e
commit 0dbc04f09b
28 changed files with 99 additions and 80 deletions

View file

@ -14,6 +14,7 @@ export enum FolderStructure {
datasets = "datasets", datasets = "datasets",
behaviorTrees = "behavior_trees", behaviorTrees = "behavior_trees",
robots = "robots", robots = "robots",
scenes = "scenes",
} }
export class UploadCadFileToProjectScenario extends CallbackStrategyWithFileUpload { export class UploadCadFileToProjectScenario extends CallbackStrategyWithFileUpload {

View file

@ -9,7 +9,17 @@ import { ExecProcessUseCase } from "../../../core/usecases/exec_process_usecase"
export class CreateRobotScenario extends CallbackStrategyWithValidationModel<RobotModel> { export class CreateRobotScenario extends CallbackStrategyWithValidationModel<RobotModel> {
validationModel: RobotModel = new RobotModel(); validationModel: RobotModel = new RobotModel();
call = async (model: RobotModel): ResponseBase => { call = async (model: RobotModel): ResponseBase => (
return Result.ok([]); await new SearchManyDataBaseModelUseCase<IProjectModel>(ProjectDBModel).call(
}; { isActive: true },
"is dont active projects"
)
).map(async (projectModel) => {
const { rootDir } = projectModel[0];
rootDir + '/robots/'
return Result.ok([])
});
} }

View file

@ -90,7 +90,8 @@ export class FormViewModel {
return; return;
} }
try { try {
return JSON.parse(result.replaceAll("\n", "").replaceAll("\\", "").replaceAll("/", ""));
return JSON.parse(result.replace(/[^\x00-\x7F]/g, "").replaceAll("\n", "").replaceAll("\\", "").replaceAll("/", ""));
} catch (error) { } catch (error) {
console.log("ERROR: FormViewModel json() " + result); console.log("ERROR: FormViewModel json() " + result);
} }
@ -159,8 +160,6 @@ export class FormViewModel {
} }
} }
// if(inputResult instanceof Array) console.log(inputResult.map((el) => JSON.parse(el)))
if (inputResult instanceof Array) if (inputResult instanceof Array)
inputResult = JSON.stringify(inputResult.map((el) => JSON.parse(el.replace(/[^\x00-\x7F]/g, "")))); inputResult = JSON.stringify(inputResult.map((el) => JSON.parse(el.replace(/[^\x00-\x7F]/g, ""))));
operations.push({ regExp: new RegExp("\\${" + element.name + ".*?}"), result: inputResult }); operations.push({ regExp: new RegExp("\\${" + element.name + ".*?}"), result: inputResult });

View file

@ -0,0 +1,9 @@
{
"params": [
{
"name": "default",
"value": "default"
}
]
}

View file

@ -1,3 +0,0 @@
import { HttpRepository } from "../../../../core/repository/core_http_repository";
export class TrajectoryHttpRepository extends HttpRepository {}

View file

@ -1,12 +1,12 @@
import React from "react"; import React from "react";
import { CoreButton } from "../../../../core/ui/button/button"; import { CoreButton } from "../../../../../core/ui/button/button";
import { IDefaultSceneManagerFormProps, isPreviewMode } from "../scene_manager_forms"; import { IDefaultSceneManagerFormProps, isPreviewMode } from "../scene_manager_forms";
import { CoreInput } from "../../../../core/ui/input/input"; import { CoreInput } from "../../../../../core/ui/input/input";
import { CoreText, CoreTextType } from "../../../../core/ui/text/text"; import { CoreText, CoreTextType } from "../../../../../core/ui/text/text";
import { CoreSelect } from "../../../../core/ui/select/select"; import { CoreSelect } from "../../../../../core/ui/select/select";
import { CameraFormStore } from "./camera_store"; import { CameraFormStore } from "./camera_store";
import { observer } from "mobx-react-lite"; import { observer } from "mobx-react-lite";
import { CameraTypes } from "../../../../core/model/camera_model"; import { CameraTypes } from "../../../../../core/model/camera_model";
export const CameraForm = observer((props: IDefaultSceneManagerFormProps) => { export const CameraForm = observer((props: IDefaultSceneManagerFormProps) => {
const [store] = React.useState(() => new CameraFormStore(props.store)); const [store] = React.useState(() => new CameraFormStore(props.store));

View file

@ -1,10 +1,10 @@
import makeAutoObservable from "mobx-store-inheritance"; import makeAutoObservable from "mobx-store-inheritance";
import { NavigateFunction } from "react-router-dom"; import { NavigateFunction } from "react-router-dom";
import { FormState, CoreError } from "../../../../core/store/base_store"; import { FormState, CoreError } from "../../../../../core/store/base_store";
import { isPreviewMode } from "../scene_manager_forms"; import { isPreviewMode } from "../scene_manager_forms";
import { CameraModel } from "../../../../core/model/camera_model"; import { CameraModel } from "../../../../../core/model/camera_model";
import { message } from "antd"; import { message } from "antd";
import { SceneBuilderStore } from "../../presentation/scene_builder_store"; import { SceneBuilderStore } from "../../scene_builder_store";
export class CameraFormStore extends FormState<CameraModel, CoreError> { export class CameraFormStore extends FormState<CameraModel, CoreError> {
viewModel: CameraModel = CameraModel.empty(); viewModel: CameraModel = CameraModel.empty();

View file

@ -1,6 +1,6 @@
import { NavigateFunction } from "react-router-dom"; import { NavigateFunction } from "react-router-dom";
import { FormState, CoreError } from "../../../../core/store/base_store"; import { FormState, CoreError } from "../../../../../core/store/base_store";
import { LightModel } from "../../../../core/model/light_model"; import { LightModel } from "../../../../../core/model/light_model";
export class LightStore extends FormState<LightModel, CoreError> { export class LightStore extends FormState<LightModel, CoreError> {
viewModel: LightModel = LightModel.empty(); viewModel: LightModel = LightModel.empty();

View file

@ -2,12 +2,12 @@ import React from "react";
import { observer } from "mobx-react-lite"; import { observer } from "mobx-react-lite";
import { PointStore, PointStoreType } from "./point_store"; import { PointStore, PointStoreType } from "./point_store";
import { IDefaultSceneManagerFormProps } from "../scene_manager_forms"; import { IDefaultSceneManagerFormProps } from "../scene_manager_forms";
import { CoreText, CoreTextType } from "../../../../core/ui/text/text"; import { CoreText, CoreTextType } from "../../../../../core/ui/text/text";
import { CoreInput } from "../../../../core/ui/input/input"; import { CoreInput } from "../../../../../core/ui/input/input";
import { CoreButton } from "../../../../core/ui/button/button"; import { CoreButton } from "../../../../../core/ui/button/button";
import { match } from "ts-pattern"; import { match } from "ts-pattern";
import { SpawnPositionTypesForm } from "../../presentation/components/spawn_position_types"; import { SpawnPositionTypesForm } from "../../components/spawn_position_types";
import { CoordsForm } from "../../presentation/components/coords_form"; import { CoordsForm } from "../../components/coords_form";
export const PointForm = observer((props: IDefaultSceneManagerFormProps) => { export const PointForm = observer((props: IDefaultSceneManagerFormProps) => {
const [store] = React.useState(() => new PointStore(props.store)); const [store] = React.useState(() => new PointStore(props.store));

View file

@ -1,10 +1,10 @@
import makeAutoObservable from "mobx-store-inheritance"; import makeAutoObservable from "mobx-store-inheritance";
import { NavigateFunction } from "react-router-dom"; import { NavigateFunction } from "react-router-dom";
import { PointModel } from "../../../../core/model/point_model"; import { PointModel } from "../../../../../core/model/point_model";
import { FormState, CoreError } from "../../../../core/store/base_store"; import { FormState, CoreError } from "../../../../../core/store/base_store";
import { SpawnPositionTypes } from "../../../../core/model/spawn_position_types"; import { SpawnPositionTypes } from "../../../../../core/model/spawn_position_types";
import { isPreviewMode } from "../scene_manager_forms"; import { isPreviewMode } from "../scene_manager_forms";
import { SceneBuilderStore } from "../../presentation/scene_builder_store"; import { SceneBuilderStore } from "../../scene_builder_store";
export enum PointStoreType { export enum PointStoreType {
makeSceneSolidAndEditPosition = "makeSceneSolidAndEditPosition", makeSceneSolidAndEditPosition = "makeSceneSolidAndEditPosition",

View file

@ -2,15 +2,15 @@ import React from "react";
import { observer } from "mobx-react-lite"; import { observer } from "mobx-react-lite";
import { RobotFormStore, RobotStoreType } from "./robot_form_store"; import { RobotFormStore, RobotStoreType } from "./robot_form_store";
import { IDefaultSceneManagerFormProps } from "../scene_manager_forms"; import { IDefaultSceneManagerFormProps } from "../scene_manager_forms";
import { CoreText, CoreTextType } from "../../../../core/ui/text/text"; import { CoreText, CoreTextType } from "../../../../../core/ui/text/text";
import { CoreInputNumber } from "../../../../core/ui/inputNumber/input_number"; import { CoreInputNumber } from "../../../../../core/ui/inputNumber/input_number";
import { CoreInput, CoreInputType } from "../../../../core/ui/input/input"; import { CoreInput, CoreInputType } from "../../../../../core/ui/input/input";
import { match } from "ts-pattern"; import { match } from "ts-pattern";
import { CoreSelect } from "../../../../core/ui/select/select"; import { CoreSelect } from "../../../../../core/ui/select/select";
import { ToolTypes } from "../../../../core/model/robot_model"; import { ToolTypes } from "../../../../../core/model/robot_model";
import { CoreButton } from "../../../../core/ui/button/button"; import { CoreButton } from "../../../../../core/ui/button/button";
import { SpawnPositionTypesForm } from "../../presentation/components/spawn_position_types"; import { SpawnPositionTypesForm } from "../../components/spawn_position_types";
import { CoordsForm } from "../../presentation/components/coords_form"; import { CoordsForm } from "../../components/coords_form";
export const RobotForm = observer((props: IDefaultSceneManagerFormProps) => { export const RobotForm = observer((props: IDefaultSceneManagerFormProps) => {
const [store] = React.useState(() => new RobotFormStore(props.store)); const [store] = React.useState(() => new RobotFormStore(props.store));

View file

@ -1,5 +1,5 @@
import { RobotModel } from "../../../../core/model/robot_model"; import { RobotModel } from "../../../../../core/model/robot_model";
import { HttpMethod, HttpRepository } from "../../../../core/repository/core_http_repository"; import { HttpMethod, HttpRepository } from "../../../../../core/repository/core_http_repository";
export interface RobotURL { export interface RobotURL {
robotUrl: string; robotUrl: string;
} }

View file

@ -1,11 +1,11 @@
import makeAutoObservable from "mobx-store-inheritance"; import makeAutoObservable from "mobx-store-inheritance";
import { NavigateFunction } from "react-router-dom"; import { NavigateFunction } from "react-router-dom";
import { RobotFormHttpRepository } from "./robot_form_http_repository"; import { RobotFormHttpRepository } from "./robot_form_http_repository";
import { FormState, CoreError } from "../../../../core/store/base_store"; import { FormState, CoreError } from "../../../../../core/store/base_store";
import { RobotModel } from "../../../../core/model/robot_model"; import { RobotModel } from "../../../../../core/model/robot_model";
import { isPreviewMode } from "../scene_manager_forms"; import { isPreviewMode } from "../scene_manager_forms";
import { message } from "antd"; import { message } from "antd";
import { SceneBuilderStore } from "../../presentation/scene_builder_store"; import { SceneBuilderStore } from "../../scene_builder_store";
export enum RobotStoreType { export enum RobotStoreType {
previewRobot = "previewRobot", previewRobot = "previewRobot",
@ -20,7 +20,7 @@ export class RobotFormStore extends FormState<RobotModel, CoreError> {
robotFormHttpRepository: RobotFormHttpRepository = new RobotFormHttpRepository(); robotFormHttpRepository: RobotFormHttpRepository = new RobotFormHttpRepository();
spawnType: string; spawnType: string;
listener: Function; listener: Function;
clickLister = (event: MouseEvent) => clickLister = (event: MouseEvent) => {
this.storeType.isEqualR(RobotStoreType.awaitMouseClick).map(() => this.storeType.isEqualR(RobotStoreType.awaitMouseClick).map(() =>
this.sceneBuilderStore!.clickScene(event, this.sceneBuilderStore!.canvasOffsetX).map((vector3) => { this.sceneBuilderStore!.clickScene(event, this.sceneBuilderStore!.canvasOffsetX).map((vector3) => {
this.viewModel.position = vector3; this.viewModel.position = vector3;
@ -32,6 +32,7 @@ export class RobotFormStore extends FormState<RobotModel, CoreError> {
this.sceneBuilderStore.visibleSaveButton(); this.sceneBuilderStore.visibleSaveButton();
}) })
); );
};
selectSpawnType = (type: string) => { selectSpawnType = (type: string) => {
this.spawnType = type; this.spawnType = type;
@ -51,8 +52,7 @@ export class RobotFormStore extends FormState<RobotModel, CoreError> {
.isEqualR(RobotStoreType.previewRobot) .isEqualR(RobotStoreType.previewRobot)
.map( .map(
() => ( () => (
this.viewModel.update(this.sceneBuilderStore.coreThreeRepository!), this.viewModel.update(this.sceneBuilderStore.coreThreeRepository!), this.sceneBuilderStore.visibleSaveButton()
this.sceneBuilderStore.visibleSaveButton()
) )
); );
createNewRobot = () => createNewRobot = () =>
@ -88,4 +88,3 @@ export class RobotFormStore extends FormState<RobotModel, CoreError> {
) )
); );
} }

View file

@ -1,6 +1,6 @@
import { Result } from "../../../core/helper/result"; import { Result } from "../../../../core/helper/result";
import { SceneBuilderStore } from "../presentation/scene_builder_store"; import { SceneBuilderStore } from "../scene_builder_store";
import { SceneMangerStore } from "../../scene_manager/presentation/scene_manager_store"; import { SceneMangerStore } from "../../../scene_manager/presentation/scene_manager_store";
import { CameraForm } from "./camera/camera_form"; import { CameraForm } from "./camera/camera_form";
import { LightForm } from "./light/light_form"; import { LightForm } from "./light/light_form";
import { PointForm } from "./point/point_form"; import { PointForm } from "./point/point_form";

View file

@ -1,13 +1,13 @@
import React from "react"; import React from "react";
import { CoreText, CoreTextType } from "../../../../core/ui/text/text"; import { CoreText, CoreTextType } from "../../../../../core/ui/text/text";
import { IDefaultSceneManagerFormProps } from "../scene_manager_forms"; import { IDefaultSceneManagerFormProps } from "../scene_manager_forms";
import { SolidBodyStore, SolidBodyStoreType } from "./solid_body_store"; import { SolidBodyStore, SolidBodyStoreType } from "./solid_body_store";
import { observer } from "mobx-react-lite"; import { observer } from "mobx-react-lite";
import { CoreButton } from "../../../../core/ui/button/button"; import { CoreButton } from "../../../../../core/ui/button/button";
import { match } from "ts-pattern"; import { match } from "ts-pattern";
import { SpawnPositionTypesForm } from "../../presentation/components/spawn_position_types"; import { SpawnPositionTypesForm } from "../../components/spawn_position_types";
import { CoreInput } from "../../../../core/ui/input/input"; import { CoreInput } from "../../../../../core/ui/input/input";
import { CoordsForm } from "../../presentation/components/coords_form"; import { CoordsForm } from "../../components/coords_form";
export const SolidBodyForm = observer((props: IDefaultSceneManagerFormProps) => { export const SolidBodyForm = observer((props: IDefaultSceneManagerFormProps) => {
const [store] = React.useState(() => new SolidBodyStore(props.store)); const [store] = React.useState(() => new SolidBodyStore(props.store));

View file

@ -1,12 +1,12 @@
import makeAutoObservable from "mobx-store-inheritance"; import makeAutoObservable from "mobx-store-inheritance";
import { FormState, CoreError } from "../../../../core/store/base_store"; import { FormState, CoreError } from "../../../../../core/store/base_store";
import { CoreHttpRepository } from "../../../../core/repository/core_http_repository"; import { CoreHttpRepository } from "../../../../../core/repository/core_http_repository";
import { Parts } from "../../../details/details_http_repository"; import { Parts } from "../../../../details/details_http_repository";
import { Vector2 } from "three"; import { Vector2 } from "three";
import { SpawnPositionTypes } from "../../../../core/model/spawn_position_types"; import { SpawnPositionTypes } from "../../../../../core/model/spawn_position_types";
import { isPreviewMode } from "../scene_manager_forms"; import { isPreviewMode } from "../scene_manager_forms";
import { SolidModel } from "../../../../core/model/solid_model"; import { SolidModel } from "../../../../../core/model/solid_model";
import { SceneBuilderStore } from "../../presentation/scene_builder_store"; import { SceneBuilderStore } from "../../scene_builder_store";
export enum SolidBodyStoreType { export enum SolidBodyStoreType {
selectBody = "selectBody", selectBody = "selectBody",

View file

@ -0,0 +1,3 @@
import { HttpRepository } from "../../../../../core/repository/core_http_repository";
export class TrajectoryHttpRepository extends HttpRepository {}

View file

@ -2,7 +2,7 @@ import makeAutoObservable from "mobx-store-inheritance";
import { NavigateFunction } from "react-router-dom"; import { NavigateFunction } from "react-router-dom";
import { TrajectoryViewModel } from "./trajectory_view_model"; import { TrajectoryViewModel } from "./trajectory_view_model";
import { TrajectoryHttpRepository } from "./trajectory_http_repository"; import { TrajectoryHttpRepository } from "./trajectory_http_repository";
import { FormState, CoreError } from "../../../../core/store/base_store"; import { FormState, CoreError } from "../../../../../core/store/base_store";
export class TrajectoryStore extends FormState<TrajectoryViewModel, CoreError> { export class TrajectoryStore extends FormState<TrajectoryViewModel, CoreError> {
constructor() { constructor() {

View file

@ -1,4 +1,4 @@
import { Result } from "../../../../core/helper/result"; import { Result } from "../../../../../core/helper/result";
export class TrajectoryViewModel { export class TrajectoryViewModel {

View file

@ -2,8 +2,8 @@ import React from "react";
import { observer } from "mobx-react-lite"; import { observer } from "mobx-react-lite";
import { ZoneStore } from "./zone_store"; import { ZoneStore } from "./zone_store";
import { IDefaultSceneManagerFormProps } from "../scene_manager_forms"; import { IDefaultSceneManagerFormProps } from "../scene_manager_forms";
import { CoreText, CoreTextType } from "../../../../core/ui/text/text"; import { CoreText, CoreTextType } from "../../../../../core/ui/text/text";
import { CoreInput } from "../../../../core/ui/input/input"; import { CoreInput } from "../../../../../core/ui/input/input";
export const ZoneForm = observer((props: IDefaultSceneManagerFormProps) => { export const ZoneForm = observer((props: IDefaultSceneManagerFormProps) => {
const [store] = React.useState(() => new ZoneStore(props.store)); const [store] = React.useState(() => new ZoneStore(props.store));

View file

@ -1,11 +1,11 @@
import makeAutoObservable from "mobx-store-inheritance"; import makeAutoObservable from "mobx-store-inheritance";
import { NavigateFunction } from "react-router-dom"; import { NavigateFunction } from "react-router-dom";
import { ZoneModel } from "../../../../core/model/zone_model"; import { ZoneModel } from "../../../../../core/model/zone_model";
import { FormState, CoreError } from "../../../../core/store/base_store"; import { FormState, CoreError } from "../../../../../core/store/base_store";
import { isPreviewMode } from "../scene_manager_forms"; import { isPreviewMode } from "../scene_manager_forms";
import { SceneMangerStore } from "../../../scene_manager/presentation/scene_manager_store"; import { SceneMangerStore } from "../../../../scene_manager/presentation/scene_manager_store";
import { SceneBuilderStore } from "../../presentation/scene_builder_store"; import { SceneBuilderStore } from "../../scene_builder_store";
export enum ZoneStoreType { export enum ZoneStoreType {
preview = "preview", preview = "preview",
} }

View file

@ -9,7 +9,7 @@ import { Icon } from "../../../core/ui/icons/icons";
import { MainPage } from "../../../core/ui/pages/main_page"; import { MainPage } from "../../../core/ui/pages/main_page";
import { CoreText, CoreTextType } from "../../../core/ui/text/text"; import { CoreText, CoreTextType } from "../../../core/ui/text/text";
import { SceneMode } from "../../scene_manager/model/scene_view"; import { SceneMode } from "../../scene_manager/model/scene_view";
import { sceneManagerForms } from "../forms/scene_manager_forms"; import { sceneManagerForms } from "./forms/scene_manager_forms";
export const SceneBuilderScreenPath = "/scene/builder/"; export const SceneBuilderScreenPath = "/scene/builder/";

View file

@ -13,7 +13,7 @@ import { CoreThreeRepository } from "../../../core/repository/core_three_reposit
import { SceneModel } from "../../scene_manager/model/scene_model"; import { SceneModel } from "../../scene_manager/model/scene_model";
import { SceneMode } from "../../scene_manager/model/scene_view"; import { SceneMode } from "../../scene_manager/model/scene_view";
import { SceneViewModel } from "../../scene_manager/model/scene_view_model"; import { SceneViewModel } from "../../scene_manager/model/scene_view_model";
import { SceneManagerForms } from "../forms/scene_manager_forms"; import { SceneManagerForms } from "./forms/scene_manager_forms";
import { FormState } from "../../../core/store/base_store"; import { FormState } from "../../../core/store/base_store";
import { Result } from "../../../core/helper/result"; import { Result } from "../../../core/helper/result";
import { SceneBuilderHttpRepository } from "../data/scene_builder_repository"; import { SceneBuilderHttpRepository } from "../data/scene_builder_repository";

View file

@ -1,10 +1,7 @@
import { Result } from "../../../core/helper/result";
import { HttpMethod, CoreHttpRepository } from "../../../core/repository/core_http_repository"; import { HttpMethod, CoreHttpRepository } from "../../../core/repository/core_http_repository";
import { CoreError } from "../../../core/store/base_store";
import { SceneViewModel } from "../model/scene_view_model"; import { SceneViewModel } from "../model/scene_view_model";
export class SceneHttpRepository extends CoreHttpRepository { export class SceneHttpRepository extends CoreHttpRepository {
deleteScene = (sceneId:string) => this._jsonRequest(HttpMethod.DELETE, '/scenes', ) deleteScene = (sceneId: string) => this._jsonRequest(HttpMethod.DELETE, `/scenes?id=${sceneId}`);
newScene = (sceneViewModel: SceneViewModel) => newScene = (sceneViewModel: SceneViewModel) => this._jsonRequest(HttpMethod.POST, "/scenes", sceneViewModel);
this._jsonRequest(HttpMethod.POST, "/scenes", sceneViewModel) as unknown as Promise<Result<CoreError, void>>;
} }

View file

@ -9,7 +9,7 @@ import { CoreButton } from "../../../core/ui/button/button";
import { CoreInput } from "../../../core/ui/input/input"; import { CoreInput } from "../../../core/ui/input/input";
import { DrawersDataset } from "../../dataset/dataset_store"; import { DrawersDataset } from "../../dataset/dataset_store";
import { Icon } from "../../../core/ui/icons/icons"; import { Icon } from "../../../core/ui/icons/icons";
import { sceneManagerForms } from "../../scene_builder/forms/scene_manager_forms"; import { sceneManagerForms } from "../../scene_builder/presentation/forms/scene_manager_forms";
import { SceneMode } from "../model/scene_view"; import { SceneMode } from "../model/scene_view";
import { useStore } from "../../../core/helper/use_store"; import { useStore } from "../../../core/helper/use_store";
import { SceneBuilderScreenPath } from "../../scene_builder/presentation/scene_builder_screen"; import { SceneBuilderScreenPath } from "../../scene_builder/presentation/scene_builder_screen";
@ -74,7 +74,12 @@ export const SceneManger = observer(() => {
textStyle={{ color: "black", textAlign: "center" }} textStyle={{ color: "black", textAlign: "center" }}
style={{ marginRight: 10, backgroundColor: "white", width: 126 }} style={{ marginRight: 10, backgroundColor: "white", width: 126 }}
/> />
<Icon style={{ height: 20 }} type={"DeleteCircle"} color="red" /> <Icon
style={{ height: 20 }}
type={"DeleteCircle"}
color="red"
onClick={() => store.clickDeleteScene(el._id as string)}
/>
</div> </div>
</div> </div>
))} ))}

View file

@ -15,7 +15,6 @@ import { PointModel } from "../../../core/model/point_model";
import { RobotModel } from "../../../core/model/robot_model"; import { RobotModel } from "../../../core/model/robot_model";
import { ZoneModel } from "../../../core/model/zone_model"; import { ZoneModel } from "../../../core/model/zone_model";
export enum DrawersSceneManager { export enum DrawersSceneManager {
NewScene = "Новая сцена", NewScene = "Новая сцена",
} }
@ -48,7 +47,6 @@ export class SceneMangerStore extends UiDrawerFormState<SceneViewModel, HttpErro
this.sceneHttpRepository = new SceneHttpRepository(); this.sceneHttpRepository = new SceneHttpRepository();
} }
createNewScene = () => createNewScene = () =>
this.viewModel.valid().fold( this.viewModel.valid().fold(
async (s) => { async (s) => {
@ -72,8 +70,9 @@ export class SceneMangerStore extends UiDrawerFormState<SceneViewModel, HttpErro
errorHandingStrategy = (error: HttpError) => errorHandingStrategy = (error: HttpError) =>
error.status.isEqualR(404).map(() => this.errors.push(new UiBaseError(`not found to project`))); error.status.isEqualR(404).map(() => this.errors.push(new UiBaseError(`not found to project`)));
clickDeleteScene = async () => { clickDeleteScene = async (sceneId: string) => {
await this.messageHttp(this.sceneHttpRepository.deleteScene(this.activeSceneId), { console.log(sceneId)
await this.messageHttp(this.sceneHttpRepository.deleteScene(sceneId), {
successMessage: "сцена удалена", successMessage: "сцена удалена",
}); });
this.mapOk("scenes", this.sceneHttpRepository.getAllScenes()); this.mapOk("scenes", this.sceneHttpRepository.getAllScenes());