2023-12-25 23:20:34 +02:00
|
|
|
import { Component, JSXElement, createSignal } from 'solid-js';
|
2023-05-14 22:07:16 +03:00
|
|
|
|
|
|
|
|
import styles from './css/App.module.css';
|
2023-12-24 23:54:16 +02:00
|
|
|
import { Country } from './country/Country';
|
|
|
|
|
import { Cities } from './cities/Cities';
|
|
|
|
|
import { Database } from './database/Database';
|
2023-12-25 23:20:34 +02:00
|
|
|
import { Station } from './station/Station';
|
|
|
|
|
import { apiHost } from './consts';
|
2023-05-14 23:01:36 +03:00
|
|
|
|
|
|
|
|
console.log("env:", import.meta.env.MODE);
|
2023-12-25 23:20:34 +02:00
|
|
|
console.log("api host:", apiHost);
|
2023-05-14 22:07:16 +03:00
|
|
|
|
|
|
|
|
const App: Component = () => {
|
2023-12-25 23:20:34 +02:00
|
|
|
const pages: [string, () => JSXElement][] = [
|
|
|
|
|
["station", () => <Station />],
|
|
|
|
|
["cities", () => <Cities />],
|
|
|
|
|
["latvia", () => <Country />],
|
|
|
|
|
["database", () => <Database />],
|
|
|
|
|
];
|
2024-01-05 16:17:00 +02:00
|
|
|
const [getPageTitle, setPageTitle] = createSignal("station");
|
2023-12-25 23:20:34 +02:00
|
|
|
|
|
|
|
|
const getPageContent = () => {
|
|
|
|
|
const page = pages.find(p => p[0] === getPageTitle());
|
|
|
|
|
return page ? page[1]() : <div>Page not found!</div>;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const getActiveCSS = (pageTitle: string) => {
|
|
|
|
|
return getPageTitle() === pageTitle ? styles.active : "";
|
2023-08-07 23:25:35 +03:00
|
|
|
}
|
2023-05-15 20:50:53 +03:00
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
<div class={styles.App}>
|
2023-12-25 23:20:34 +02:00
|
|
|
<ul class={styles.menu}>
|
|
|
|
|
{ pages.map(([pageTitle]) =>
|
|
|
|
|
<li
|
|
|
|
|
class={getActiveCSS(pageTitle)}
|
|
|
|
|
onClick={() => setPageTitle(pageTitle)}
|
|
|
|
|
>
|
|
|
|
|
{pageTitle}
|
|
|
|
|
</li>
|
|
|
|
|
)}
|
|
|
|
|
</ul>
|
|
|
|
|
{ getPageContent() }
|
2023-05-15 20:50:53 +03:00
|
|
|
</div>
|
|
|
|
|
);
|
2023-05-14 22:07:16 +03:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export default App;
|