-
-
-
- 业余无线电卫星数据库
- Amateur Radio Satellites Database
-
- }
- onCompositionStart={ handleCompositionStart }
- onCompositionEnd={ handleCompositionEnd }
- onChange={ handleChange }
- />
-
-
- { satellitesData && satellitesData.code !== 0 && (
-
- ) }
+ <>
+
+
+
+
+ 业余无线电卫星数据库
+ Amateur Radio Satellites Database
+
+
}
+ onCompositionStart={ handleCompositionStart }
+ onCompositionEnd={ handleCompositionEnd }
+ onChange={ handleChange }
+ />
+
+
+ 台站位置:
+
+ { location ? `${ location.latitude.toFixed(6) }, ${ location.longitude.toFixed(6) }` : 'unknown' || 'loading...' }
+
+
+
+ { !locationFromMobile && (locationError || recommendMobileLocation) && (
+
+
+ ) }
+
+
+
+
+
+
+ { satellitesData && satellitesData.code !== 0 && (
+
+ ) }
- {
- return a.name.localeCompare(b.name)
- } }
- />
+ {
+ return a.name.localeCompare(b.name)
+ } }
+ />
+
-
+
setMobileLocationRefId(null) }
+ closeOnEsc={ true }
+ >
+
+
+ { mobileScanned && (
+
+ ) }
+
+
+ >
)
}
\ No newline at end of file
diff --git a/app/satellites/SatelliteTable.tsx b/app/satellites/SatelliteTable.tsx
index a3a94f9..8ca020d 100644
--- a/app/satellites/SatelliteTable.tsx
+++ b/app/satellites/SatelliteTable.tsx
@@ -243,7 +243,7 @@ export const SatelliteTable = ({
(pagination?.current || 1) * (pagination?.pageSize || 10),
).map((satellite, index) => (
i.norad_cat_id === satellite.norad_cat_id) || null }
timestamp={ timestamp }
diff --git a/package-lock.json b/package-lock.json
index c4f0378..e662f46 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -13,6 +13,7 @@
"@douyinfe/semi-ui": "^2.55.0",
"@hamset/maidenhead-locator": "^0.2.1",
"@uiw/react-amap": "^6.0.3",
+ "@uniiem/uuid": "^0.2.1",
"@vercel/analytics": "^1.2.2",
"@vercel/blob": "^0.22.1",
"@vercel/kv": "^1.0.1",
@@ -22,6 +23,7 @@
"react": "^18",
"react-dom": "^18",
"react-markdown": "^9.0.1",
+ "react-qr-code": "^2.0.12",
"react-transition-group": "^4.4.5",
"rehype-katex": "^7.0.0",
"remark-gfm": "^4.0.0",
@@ -1499,6 +1501,11 @@
"resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
"integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ=="
},
+ "node_modules/@uniiem/uuid": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/@uniiem/uuid/-/uuid-0.2.1.tgz",
+ "integrity": "sha512-p8DOA3BTkZgvgtOCtK5x7Y2l+GRTFhYrOua70YPiEEUomQFirwxpWrQBst+7oB/iPTeY1zHuF6MKl+mxi0R00A=="
+ },
"node_modules/@upstash/redis": {
"version": "1.25.1",
"resolved": "https://registry.npmjs.org/@upstash/redis/-/redis-1.25.1.tgz",
@@ -6140,6 +6147,11 @@
"node": ">=6"
}
},
+ "node_modules/qr.js": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/qr.js/-/qr.js-0.0.0.tgz",
+ "integrity": "sha512-c4iYnWb+k2E+vYpRimHqSu575b1/wKl4XFeJGpFmrJQz5I88v9aY2czh7s0w36srfCM1sXgC/xpoJz5dJfq+OQ=="
+ },
"node_modules/queue-microtask": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
@@ -6226,6 +6238,24 @@
"react": ">=18"
}
},
+ "node_modules/react-qr-code": {
+ "version": "2.0.12",
+ "resolved": "https://registry.npmjs.org/react-qr-code/-/react-qr-code-2.0.12.tgz",
+ "integrity": "sha512-k+pzP5CKLEGBRwZsDPp98/CAJeXlsYRHM2iZn1Sd5Th/HnKhIZCSg27PXO58zk8z02RaEryg+60xa4vyywMJwg==",
+ "dependencies": {
+ "prop-types": "^15.8.1",
+ "qr.js": "0.0.0"
+ },
+ "peerDependencies": {
+ "react": "^16.x || ^17.x || ^18.x",
+ "react-native-svg": "*"
+ },
+ "peerDependenciesMeta": {
+ "react-native-svg": {
+ "optional": true
+ }
+ }
+ },
"node_modules/react-resizable": {
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/react-resizable/-/react-resizable-3.0.5.tgz",
diff --git a/package.json b/package.json
index f73d784..1081495 100644
--- a/package.json
+++ b/package.json
@@ -3,7 +3,7 @@
"version": "0.2.0",
"private": true,
"scripts": {
- "dev": "next dev -p 4090",
+ "dev": "next dev -p 3000",
"vercel-dev": "vercel dev --listen 3000",
"build": "next build",
"start": "next start",
@@ -15,6 +15,7 @@
"@douyinfe/semi-ui": "^2.55.0",
"@hamset/maidenhead-locator": "^0.2.1",
"@uiw/react-amap": "^6.0.3",
+ "@uniiem/uuid": "^0.2.1",
"@vercel/analytics": "^1.2.2",
"@vercel/blob": "^0.22.1",
"@vercel/kv": "^1.0.1",
@@ -24,6 +25,7 @@
"react": "^18",
"react-dom": "^18",
"react-markdown": "^9.0.1",
+ "react-qr-code": "^2.0.12",
"react-transition-group": "^4.4.5",
"rehype-katex": "^7.0.0",
"remark-gfm": "^4.0.0",
diff --git a/types/types.ts b/types/types.ts
index e69de29..e6ee4bb 100644
--- a/types/types.ts
+++ b/types/types.ts
@@ -0,0 +1,7 @@
+export type ObserverLocationStore = {
+ longitude: number,
+ latitude: number,
+ altitude?: number | null,
+ accuracy: number,
+ altitudeAccuracy?: number | null,
+} | 'pending'
\ No newline at end of file