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 (
{ homeTabStore.activeTab = "open"; })} title={ "Open a local project or select one from the recent list" } > {" "} Open
{ homeTabStore.activeTab = "create"; })} title="Create a new project" > {" "} Create
{ homeTabStore.activeTab = "examples"; })} title="Example projects ready to run or edit" > {" "} Examples
{/*
{ homeTabStore.activeTab = "run"; })} title="Run dashboard projects from the list of shortcuts" > Run
*/}
{ homeTabStore.activeTab = "instruments"; })} title="Instruments manager" > {" "} Instruments
{ homeTabStore.activeTab = "extensions"; })} title="Extensions manager" > 0 } /> Extensions
{ homeTabStore.activeTab = "settings"; })} title="Global user settings" > Settings
{/*
{tabs.allTabs .filter( tab => tab.instance.category == "common" ) .map(tab => ( ))}
*/}
{homeTabStore.activeTab == "open" && } {homeTabStore.activeTab == "create" && ( ()} /> )} {homeTabStore.activeTab == "examples" && ( ()} /> )} {/* homeTabStore.activeTab == "run" && (
) */} {homeTabStore.activeTab == "instruments" && ( )} {homeTabStore.activeTab == "extensions" && ( )} {homeTabStore.activeTab == "settings" && }
); } } );