diff --git a/package.json b/package.json index 6c201e3c..c6a46fde 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,7 @@ "build": "tsc && vite build", "preview": "vite preview", "package": "gzipper c -i html,js,css,png,ico,svg,webmanifest,txt dist dist/output && tar -cvf dist/build.tar -C ./dist/output/ $(ls ./dist/output/)", - "format": "prettier --write 'src/**/*.{ts,tsx}' && eslint src/*.{ts,tsx}", - "check": "unimported" + "format": "prettier --write 'src/**/*.{ts,tsx}' && eslint src/*.{ts,tsx}" }, "repository": { "type": "git", diff --git a/src/components/Dialog/HelpDialog.tsx b/src/components/Dialog/HelpDialog.tsx index d13e1451..4a401e97 100644 --- a/src/components/Dialog/HelpDialog.tsx +++ b/src/components/Dialog/HelpDialog.tsx @@ -1,9 +1,7 @@ -import type React from "react" +import type React from "react"; -import { Pane } from "evergreen-ui" +import { Pane } from "evergreen-ui"; export const HelpDialog = (): JSX.Element => { - return ( - - ) -} \ No newline at end of file + return ; +}; diff --git a/src/components/Dialog/QRDialog.tsx b/src/components/Dialog/QRDialog.tsx index ad7e2ff8..ca4c3172 100644 --- a/src/components/Dialog/QRDialog.tsx +++ b/src/components/Dialog/QRDialog.tsx @@ -45,13 +45,13 @@ export const QRDialog = ({ }) ); const base64 = fromByteArray(encoded) - .replace(/=/g, "") - .replace(/\+/g, "-") - .replace(/\//g, "_"); + .replace(/=/g, "") + .replace(/\+/g, "-") + .replace(/\//g, "_"); setQRCodeURL(`https://www.meshtastic.org/e/#${base64}`); }, [channels, selectedChannels, loraConfig]); - + return ( ; - style: string; - options?: Partial; -} - -export function useCreateMapbox({ - ref, - style, - options, -}: useMapboxProps): Map | undefined { - const [mapInstance, setMapInstance] = useState(); - useEffect(() => { - const container = ref.current as HTMLDivElement; - if (mapInstance || !container) { - return; - } - const map = new Map({ - container, - style, - ...options, - }); - setMapInstance(map); - }, []); - - return mapInstance; -} diff --git a/src/core/providers/useMap.ts b/src/core/providers/useMap.ts deleted file mode 100644 index a03703ac..00000000 --- a/src/core/providers/useMap.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { createContext, useContext } from "react"; - -import type { Map } from "maplibre-gl"; - -export interface MapContextValue { - ref: React.Ref; - map?: Map; -} - -export const MapContext = createContext({} as MapContextValue); - -export const useMap = (): MapContextValue => { - return useContext(MapContext); -}; diff --git a/src/pages/Config/ModuleConfig.tsx b/src/pages/Config/ModuleConfig.tsx index e9b0bd80..56756151 100644 --- a/src/pages/Config/ModuleConfig.tsx +++ b/src/pages/Config/ModuleConfig.tsx @@ -43,8 +43,6 @@ export const ModuleConfig = (): JSX.Element => { label: "Canned Message", element: CannedMessage, }, - // Channels - // Interface ]; return ( diff --git a/src/pages/Map/index.tsx b/src/pages/Map/index.tsx index 8fbcd29c..55e6e3b5 100644 --- a/src/pages/Map/index.tsx +++ b/src/pages/Map/index.tsx @@ -1,60 +1,82 @@ import type React from "react"; -import { useRef } from "react"; -import { majorScale, MapMarkerIcon, Pane } from "evergreen-ui"; +import { + Heading, + IconButton, + LocateIcon, + majorScale, + MapMarkerIcon, + Pane, + Text, +} from "evergreen-ui"; import maplibregl from "maplibre-gl"; -import Map, { Marker } from "react-map-gl"; +import { Map, Marker, useMap } from "react-map-gl"; import { useDevice } from "@core/providers/useDevice.js"; import { Hashicon } from "@emeraldpay/hashicon-react"; export const MapPage = (): JSX.Element => { const { nodes, waypoints } = useDevice(); - - // const nodeMarkers = useMemo(() => new Map(), []); - - const ref = useRef(null); - - // useEffect(() => { - // nodes.map((n) => { - // if (n.data.position?.longitudeI && n.data.position?.latitudeI && map) { - // if (nodeMarkers.has(n.data.num)) { - // nodeMarkers - // .get(n.data.num) - // ?.setLngLat([ - // n.data.position?.longitudeI / 1e7, - // n.data.position?.latitudeI / 1e7, - // ]); - // } else { - // nodeMarkers.set( - // n.data.num, - // new Marker() - // .setLngLat([ - // n.data.position?.longitudeI / 1e7, - // n.data.position?.latitudeI / 1e7, - // ]) - // .addTo(map) - // ); - // } - // } - // }); - // }, [map, nodeMarkers, nodes]); + const { current: map } = useMap(); return ( + + + Title + + + {nodes.map((n) => ( + + + {n.data.user?.longName} + { + console.log("clicked"); + console.log(map); + + map?.flyTo({ + center: [ + n.data.position?.latitudeI / 1e7, + n.data.position?.longitudeI / 1e7, + ], + zoom: 10, + }); + }} + /> + + ))} + + {waypoints.map((wp) => ( { latitude={n.data.position.latitudeI / 1e7} anchor="bottom" > - - - + ); } diff --git a/types/static.d.ts b/types/static.d.ts index 7d0a872d..392bce87 100644 --- a/types/static.d.ts +++ b/types/static.d.ts @@ -4,71 +4,58 @@ /// /* CSS MODULES */ -declare module '*.module.css' { +declare module "*.module.css" { const classes: { [key: string]: string }; export default classes; } -declare module '*.module.scss' { +declare module "*.module.scss" { const classes: { [key: string]: string }; export default classes; } -declare module '*.module.sass' { +declare module "*.module.sass" { const classes: { [key: string]: string }; export default classes; } -declare module '*.module.less' { +declare module "*.module.less" { const classes: { [key: string]: string }; export default classes; } -declare module '*.module.styl' { +declare module "*.module.styl" { const classes: { [key: string]: string }; export default classes; } /* CSS */ -declare module '*.css'; -declare module '*.scss'; -declare module '*.sass'; -declare module '*.less'; -declare module '*.styl'; +declare module "*.css"; +declare module "*.scss"; +declare module "*.sass"; +declare module "*.less"; +declare module "*.styl"; /* IMAGES */ -declare module '*.svg' { +declare module "*.svg" { const ref: string; export default ref; } -declare module '*.bmp' { +declare module "*.bmp" { const ref: string; export default ref; } -declare module '*.gif' { +declare module "*.gif" { const ref: string; export default ref; } -declare module '*.jpg' { +declare module "*.jpg" { const ref: string; export default ref; } -declare module '*.jpeg' { +declare module "*.jpeg" { const ref: string; export default ref; } -declare module '*.png' { +declare module "*.png" { const ref: string; export default ref; } /* CUSTOM: ADD YOUR OWN HERE */ - -type Primitive = string | number | boolean | symbol | undefined | null; -type DeepOmitHelper = { - [P in K]: T[P] extends infer TP //extra level of indirection needed to trigger homomorhic behavior // distribute over unions - ? TP extends Primitive - ? TP // leave primitives and functions alone - : DeepOmit - : never; -}; - -type DeepOmit = T extends Primitive - ? T - : DeepOmitHelper>;