import React from "react"; import { action, observable, makeObservable, autorun } from "mobx"; import { observer } from "mobx-react"; import classNames from "classnames"; import { Icon } from "eez-studio-ui/icon"; import { Settings } from "home/settings"; import { NewProjectWizard, wizardModelTemplates, wizardModelExamples } from "project-editor/project/ui/Wizard"; import { ExtensionsManager, extensionsManagerStore } from "./extensions-manager/extensions-manager"; import { Projects } from "home/open-projects"; import { Instruments, defaultInstrumentsStore } from "home/instruments"; import { HOME_TAB_OPEN_ICON } from "project-editor/ui-components/icons"; import { instrumentDatabases } from "eez-studio-shared/db"; //////////////////////////////////////////////////////////////////////////////// const SAVED_OPTIONS_VERSION = 1; class HomeTabStore { activeTab: | "open" | "create" | "examples" | "run" | "instruments" | "extensions" | "settings" = "open"; constructor() { this.loadOptions(); makeObservable(this, { activeTab: observable }); autorun(() => this.saveOptions()); } loadOptions() { const optionsJSON = window.localStorage.getItem("home-tab-options"); if (optionsJSON) { try { const options = JSON.parse(optionsJSON); if (options.version == SAVED_OPTIONS_VERSION) { this.activeTab = options.activeTab; } } catch (err) { console.error(err); } } } saveOptions() { window.localStorage.setItem( "home-tab-options", JSON.stringify({ version: SAVED_OPTIONS_VERSION, activeTab: this.activeTab }) ); } } export const homeTabStore = new HomeTabStore(); //////////////////////////////////////////////////////////////////////////////// const HOME_TAB_CREATE_ICON = ( ); const HOME_TAB_EXAMPLES_ICON = ( ); const HOME_TAB_INSTRUMENTS_ICON = ( ); //////////////////////////////////////////////////////////////////////////////// export const Home = observer( class Home extends React.Component { render() { return (