fix biome errors (#977)

This commit is contained in:
Tommy Ekstrand 2024-02-08 15:23:54 -06:00 committed by GitHub
parent 538ccb9cdb
commit ddc2b53af9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
16 changed files with 288 additions and 280 deletions

View file

@ -19,7 +19,7 @@ jobs:
version: latest version: latest
- name: Run Biome - name: Run Biome
run: biome ci . run: biome ci . --diagnostic-level=error
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
@ -40,4 +40,4 @@ jobs:
run: pnpm install run: pnpm install
- name: Build Package - name: Build Package
run: pnpm run build run: pnpm run build

View file

@ -4,7 +4,8 @@
"enabled": true "enabled": true
}, },
"files": { "files": {
"ignoreUnknown": true "ignoreUnknown": true,
"ignore": ["*.json"]
}, },
"vcs": { "vcs": {
"enabled": true, "enabled": true,

View file

@ -4,137 +4,137 @@ require("dotenv").config();
/** @type {import('@docusaurus/types').Config} */ /** @type {import('@docusaurus/types').Config} */
const config = { const config = {
title: "Meshtastic", title: "Meshtastic",
tagline: tagline:
"An open source, off-grid, decentralized, mesh network built to run on affordable, low-power devices", "An open source, off-grid, decentralized, mesh network built to run on affordable, low-power devices",
url: "https://meshtastic.org", url: "https://meshtastic.org",
baseUrl: "/", baseUrl: "/",
trailingSlash: true, trailingSlash: true,
onBrokenLinks: "throw", onBrokenLinks: "throw",
onBrokenMarkdownLinks: "warn", onBrokenMarkdownLinks: "warn",
favicon: "design/web/favicon.ico", favicon: "design/web/favicon.ico",
organizationName: "meshtastic", organizationName: "meshtastic",
projectName: "meshtastic", projectName: "meshtastic",
themeConfig: /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ { themeConfig: /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ {
docs: { docs: {
sidebar: { sidebar: {
autoCollapseCategories: true, autoCollapseCategories: true,
}, },
},
navbar: {
title: "Meshtastic",
hideOnScroll: true,
logo: {
alt: "Meshtastic Logo",
src: "design/logo/svg/Mesh_Logo_Black.svg",
srcDark: "design/logo/svg/Mesh_Logo_White.svg",
},
items: [
{
label: "Docs",
to: "docs/introduction",
},
{
label: "Downloads",
to: "downloads",
},
{
label: "About",
position: "right",
items: [
{
label: "Introduction",
to: "docs/introduction",
},
{
label: "Getting Started",
to: "docs/getting-started",
},
{
label: "Contributing",
to: "docs/contributing",
},
{
label: "Legal",
to: "docs/legal",
},
{
label: "FAQs",
to: "docs/faq",
},
],
},
{
href: "https://github.com/meshtastic",
position: "right",
className: "header-github-link",
"aria-label": "GitHub repository",
},
],
},
footer: {
copyright: `<a href="https://vercel.com/?utm_source=meshtastic&utm_campaign=oss">Powered by ▲ Vercel</a> | Meshtastic® is a registered trademark of Meshtastic LLC. | <a href="/docs/legal">Legal Information</a>.`,
},
algolia: {
appId: "IG2GQB8L3V",
apiKey: "2e4348812173ec7ea6f7879c7032bb21",
indexName: "meshtastic",
contextualSearch: false,
searchPagePath: "search",
},
colorMode: {
respectPrefersColorScheme: true,
},
mermaid: {
theme: { light: "base", dark: "base" },
options: {
themeVariables: {
primaryColor: "#67EA94",
primaryTextColor: "var(--tw-prose-headings)",
primaryBorderColor: "#4D4D4D",
lineColor: "#EAD667",
secondaryColor: "#EA67BD",
tertiaryColor: "#677CEA",
},
},
},
}, },
plugins: [ navbar: {
() => { title: "Meshtastic",
return { hideOnScroll: true,
name: "docusaurus-tailwindcss", logo: {
configurePostCss(postcssOptions) { alt: "Meshtastic Logo",
postcssOptions.plugins.push(require("tailwindcss")); src: "design/logo/svg/Mesh_Logo_Black.svg",
postcssOptions.plugins.push(require("autoprefixer")); srcDark: "design/logo/svg/Mesh_Logo_White.svg",
return postcssOptions; },
}, items: [
}; {
label: "Docs",
to: "docs/introduction",
}, },
], {
presets: [ label: "Downloads",
[ to: "downloads",
"@docusaurus/preset-classic", },
/** @type {import('@docusaurus/preset-classic').Options} */ {
label: "About",
position: "right",
items: [
{ {
docs: { label: "Introduction",
sidebarPath: require.resolve("./sidebars.js"), to: "docs/introduction",
editUrl: "https://github.com/meshtastic/meshtastic/edit/master/",
breadcrumbs: false,
showLastUpdateAuthor: true,
},
theme: {
customCss: require.resolve("./src/css/custom.css"),
},
}, },
], {
label: "Getting Started",
to: "docs/getting-started",
},
{
label: "Contributing",
to: "docs/contributing",
},
{
label: "Legal",
to: "docs/legal",
},
{
label: "FAQs",
to: "docs/faq",
},
],
},
{
href: "https://github.com/meshtastic",
position: "right",
className: "header-github-link",
"aria-label": "GitHub repository",
},
],
},
footer: {
copyright: `<a href="https://vercel.com/?utm_source=meshtastic&utm_campaign=oss">Powered by ▲ Vercel</a> | Meshtastic® is a registered trademark of Meshtastic LLC. | <a href="/docs/legal">Legal Information</a>.`,
},
algolia: {
appId: "IG2GQB8L3V",
apiKey: "2e4348812173ec7ea6f7879c7032bb21",
indexName: "meshtastic",
contextualSearch: false,
searchPagePath: "search",
},
colorMode: {
respectPrefersColorScheme: true,
},
mermaid: {
theme: { light: "base", dark: "base" },
options: {
themeVariables: {
primaryColor: "#67EA94",
primaryTextColor: "var(--tw-prose-headings)",
primaryBorderColor: "#4D4D4D",
lineColor: "#EAD667",
secondaryColor: "#EA67BD",
tertiaryColor: "#677CEA",
},
},
},
},
plugins: [
() => {
return {
name: "docusaurus-tailwindcss",
configurePostCss(postcssOptions) {
postcssOptions.plugins.push(require("tailwindcss"));
postcssOptions.plugins.push(require("autoprefixer"));
return postcssOptions;
},
};
},
],
presets: [
[
"@docusaurus/preset-classic",
/** @type {import('@docusaurus/preset-classic').Options} */
{
docs: {
sidebarPath: require.resolve("./sidebars.js"),
editUrl: "https://github.com/meshtastic/meshtastic/edit/master/",
breadcrumbs: false,
showLastUpdateAuthor: true,
},
theme: {
customCss: require.resolve("./src/css/custom.css"),
},
},
], ],
customFields: { ],
API_URL: process.env.API_URL, customFields: {
}, API_URL: process.env.API_URL,
markdown: { },
mermaid: true, markdown: {
}, mermaid: true,
themes: ["@docusaurus/theme-mermaid"], },
themes: ["@docusaurus/theme-mermaid"],
}; };
module.exports = config; module.exports = config;

View file

@ -33,7 +33,7 @@
"tailwindcss": "^3.4.1" "tailwindcss": "^3.4.1"
}, },
"devDependencies": { "devDependencies": {
"@biomejs/biome": "^1.5.0", "@biomejs/biome": "^1.5.3",
"@buf/meshtastic_protobufs.bufbuild_es": "1.6.0-20240106203407-94f78518ac45.1", "@buf/meshtastic_protobufs.bufbuild_es": "1.6.0-20240106203407-94f78518ac45.1",
"@docusaurus/module-type-aliases": "3.1.0", "@docusaurus/module-type-aliases": "3.1.0",
"@tailwindcss/typography": "^0.5.10", "@tailwindcss/typography": "^0.5.10",

View file

@ -65,8 +65,8 @@ dependencies:
devDependencies: devDependencies:
'@biomejs/biome': '@biomejs/biome':
specifier: ^1.5.0 specifier: ^1.5.3
version: 1.5.0 version: 1.5.3
'@buf/meshtastic_protobufs.bufbuild_es': '@buf/meshtastic_protobufs.bufbuild_es':
specifier: 1.6.0-20240106203407-94f78518ac45.1 specifier: 1.6.0-20240106203407-94f78518ac45.1
version: 1.6.0-20240106203407-94f78518ac45.1(@bufbuild/protobuf@1.6.0) version: 1.6.0-20240106203407-94f78518ac45.1(@bufbuild/protobuf@1.6.0)
@ -1551,24 +1551,24 @@ packages:
to-fast-properties: 2.0.0 to-fast-properties: 2.0.0
dev: false dev: false
/@biomejs/biome@1.5.0: /@biomejs/biome@1.5.3:
resolution: {integrity: sha512-ln+o5jbs109qpeDoA+5n+vlAPai3DhlK0tHtZXzQvu4tswFgxNiJCeIXmlW1DYHziTmtBImV3Y0uhbm2iVSE3Q==} resolution: {integrity: sha512-yvZCa/g3akwTaAQ7PCwPWDCkZs3Qa5ONg/fgOUT9e6wAWsPftCjLQFPXBeGxPK30yZSSpgEmRCfpGTmVbUjGgg==}
engines: {node: '>=14.*'} engines: {node: '>=14.*'}
hasBin: true hasBin: true
requiresBuild: true requiresBuild: true
optionalDependencies: optionalDependencies:
'@biomejs/cli-darwin-arm64': 1.5.0 '@biomejs/cli-darwin-arm64': 1.5.3
'@biomejs/cli-darwin-x64': 1.5.0 '@biomejs/cli-darwin-x64': 1.5.3
'@biomejs/cli-linux-arm64': 1.5.0 '@biomejs/cli-linux-arm64': 1.5.3
'@biomejs/cli-linux-arm64-musl': 1.5.0 '@biomejs/cli-linux-arm64-musl': 1.5.3
'@biomejs/cli-linux-x64': 1.5.0 '@biomejs/cli-linux-x64': 1.5.3
'@biomejs/cli-linux-x64-musl': 1.5.0 '@biomejs/cli-linux-x64-musl': 1.5.3
'@biomejs/cli-win32-arm64': 1.5.0 '@biomejs/cli-win32-arm64': 1.5.3
'@biomejs/cli-win32-x64': 1.5.0 '@biomejs/cli-win32-x64': 1.5.3
dev: true dev: true
/@biomejs/cli-darwin-arm64@1.5.0: /@biomejs/cli-darwin-arm64@1.5.3:
resolution: {integrity: sha512-3+D7axf04dpadGMOaqb2q+zyQnhWW0o/Imt7TJBWsoE0N3/+28Wht8g3UEHHcUL5FPuGIfsE+NcYntBaaAsEIg==} resolution: {integrity: sha512-ImU7mh1HghEDyqNmxEZBoMPr8SxekkZuYcs+gynKlNW+TALQs7swkERiBLkG9NR0K1B3/2uVzlvYowXrmlW8hw==}
engines: {node: '>=14.*'} engines: {node: '>=14.*'}
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
@ -1576,8 +1576,8 @@ packages:
dev: true dev: true
optional: true optional: true
/@biomejs/cli-darwin-x64@1.5.0: /@biomejs/cli-darwin-x64@1.5.3:
resolution: {integrity: sha512-8k5aaLWE/B6ZAXLC+z/Vwh9ogyiSaiRIfvg+F9foxuneHl2R/D/2Iy7pvd3Yoi4Kf6/MBdowekPVezGP4/Kbcw==} resolution: {integrity: sha512-vCdASqYnlpq/swErH7FD6nrFz0czFtK4k/iLgj0/+VmZVjineFPgevOb+Sr9vz0tk0GfdQO60bSpI74zU8M9Dw==}
engines: {node: '>=14.*'} engines: {node: '>=14.*'}
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
@ -1585,8 +1585,8 @@ packages:
dev: true dev: true
optional: true optional: true
/@biomejs/cli-linux-arm64-musl@1.5.0: /@biomejs/cli-linux-arm64-musl@1.5.3:
resolution: {integrity: sha512-+1B3J8tWLTOvP3+00Cap+XhEXMvxwCHvVfuywUsB7Sqd66NWic3wKJuGbGcS3PuCWtGuIFsiQMNAGqiOXG4uBQ==} resolution: {integrity: sha512-DYuMizUYUBYfS0IHGjDrOP1RGipqWfMGEvNEJ398zdtmCKLXaUvTimiox5dvx4X15mBK5M2m8wgWUgOP1giUpQ==}
engines: {node: '>=14.*'} engines: {node: '>=14.*'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
@ -1594,8 +1594,8 @@ packages:
dev: true dev: true
optional: true optional: true
/@biomejs/cli-linux-arm64@1.5.0: /@biomejs/cli-linux-arm64@1.5.3:
resolution: {integrity: sha512-RiecxG71E1jnqiJZ3FaikVBDRkk2ohIxBo0O4o68g87y6Hug//G0S83sj6Wqyn8DgKMCRWQg+XYMgk5CwLVowA==} resolution: {integrity: sha512-cupBQv0sNF1OKqBfx7EDWMSsKwRrBUZfjXawT4s6hKV6ALq7p0QzWlxr/sDmbKMLOaLQtw2Qgu/77N9rm+f9Rg==}
engines: {node: '>=14.*'} engines: {node: '>=14.*'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
@ -1603,8 +1603,8 @@ packages:
dev: true dev: true
optional: true optional: true
/@biomejs/cli-linux-x64-musl@1.5.0: /@biomejs/cli-linux-x64-musl@1.5.3:
resolution: {integrity: sha512-4S2rLluc0WT+XTbLTgcm9+5EEFwJmoGiUEzR6N0P2sIjZD8c5KNf9Ou46BP1Pdg5AgqV+IIClGPK1I80ApSh1Q==} resolution: {integrity: sha512-UUHiAnlDqr2Y/LpvshBFhUYMWkl2/Jn+bi3U6jKuav0qWbbBKU/ByHgR4+NBxpKBYoCtWxhnmatfH1bpPIuZMw==}
engines: {node: '>=14.*'} engines: {node: '>=14.*'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
@ -1612,8 +1612,8 @@ packages:
dev: true dev: true
optional: true optional: true
/@biomejs/cli-linux-x64@1.5.0: /@biomejs/cli-linux-x64@1.5.3:
resolution: {integrity: sha512-TlTsG+ptSmnDTUsAAYsXyGOXMcFiF8SiwhPdj4YsNkJRgx9M2curEVcTVm66FINIPK6VJTUcEDahFlx3NPUOzA==} resolution: {integrity: sha512-YQrSArQvcv4FYsk7Q91Yv4uuu5F8hJyORVcv3zsjCLGkjIjx2RhjYLpTL733SNL7v33GmOlZY0eFR1ko38tuUw==}
engines: {node: '>=14.*'} engines: {node: '>=14.*'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
@ -1621,8 +1621,8 @@ packages:
dev: true dev: true
optional: true optional: true
/@biomejs/cli-win32-arm64@1.5.0: /@biomejs/cli-win32-arm64@1.5.3:
resolution: {integrity: sha512-sWOi1SR+YqJuXElBncGRnWBR7IN7ni6GQY4Zm/vTpP6nVA0dX5C301eQUW1N/VnFQb6fyrJTcBslDUKyemsN/g==} resolution: {integrity: sha512-HxatYH7vf/kX9nrD+pDYuV2GI9GV8EFo6cfKkahAecTuZLPxryHx1WEfJthp5eNsE0+09STGkKIKjirP0ufaZA==}
engines: {node: '>=14.*'} engines: {node: '>=14.*'}
cpu: [arm64] cpu: [arm64]
os: [win32] os: [win32]
@ -1630,8 +1630,8 @@ packages:
dev: true dev: true
optional: true optional: true
/@biomejs/cli-win32-x64@1.5.0: /@biomejs/cli-win32-x64@1.5.3:
resolution: {integrity: sha512-OoqgUXyzmRwX466bklOsWS7WdcvWtBuxF94DXATNe7bUiBa2tlW8QX7VVZvPnMKH57E5J619AkB3b5fhzyUhXA==} resolution: {integrity: sha512-fMvbSouZEASU7mZH8SIJSANDm5OqsjgtVXlbUqxwed6BP7uuHRSs396Aqwh2+VoW8fwTpp6ybIUoC9FrzB0kyA==}
engines: {node: '>=14.*'} engines: {node: '>=14.*'}
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]

View file

@ -2,10 +2,10 @@
/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ /** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
module.exports = { module.exports = {
Sidebar: [ Sidebar: [
{ {
type: "autogenerated", type: "autogenerated",
dirName: ".", dirName: ".",
}, },
], ],
}; };

View file

@ -1,4 +1,4 @@
import React from "react"; import type React from "react";
export interface ColorModeProps { export interface ColorModeProps {
children: React.ReactNode; children: React.ReactNode;

View file

@ -1,4 +1,4 @@
import React from "react"; import type React from "react";
import Layout from "@theme/Layout"; import Layout from "@theme/Layout";

View file

@ -1,4 +1,4 @@
import React from "react"; import type React from "react";
import { FiExternalLink } from "react-icons/fi"; import { FiExternalLink } from "react-icons/fi";

View file

@ -2,11 +2,11 @@ import { Protobuf, Types } from "@meshtastic/js";
import React, { useEffect } from "react"; import React, { useEffect } from "react";
interface Region { interface Region {
freq_start: number; freqStart: number;
freq_end: number; freqEnd: number;
duty_cycle: number; dutyCycle: number;
spacing: number; spacing: number;
power_limit: number; powerLimit: number;
} }
interface Modem { interface Modem {
@ -22,181 +22,181 @@ const RegionData = new Map<
[ [
Protobuf.Config.Config_LoRaConfig_RegionCode.US, Protobuf.Config.Config_LoRaConfig_RegionCode.US,
{ {
freq_start: 902.0, freqStart: 902.0,
freq_end: 928.0, freqEnd: 928.0,
duty_cycle: 100, dutyCycle: 100,
spacing: 0, spacing: 0,
power_limit: 30, powerLimit: 30,
}, },
], ],
[ [
Protobuf.Config.Config_LoRaConfig_RegionCode.EU_433, Protobuf.Config.Config_LoRaConfig_RegionCode.EU_433,
{ {
freq_start: 433.0, freqStart: 433.0,
freq_end: 434.0, freqEnd: 434.0,
duty_cycle: 10, dutyCycle: 10,
spacing: 0, spacing: 0,
power_limit: 12, powerLimit: 12,
}, },
], ],
[ [
Protobuf.Config.Config_LoRaConfig_RegionCode.EU_868, Protobuf.Config.Config_LoRaConfig_RegionCode.EU_868,
{ {
freq_start: 869.4, freqStart: 869.4,
freq_end: 869.65, freqEnd: 869.65,
duty_cycle: 10, dutyCycle: 10,
spacing: 0, spacing: 0,
power_limit: 27, powerLimit: 27,
}, },
], ],
[ [
Protobuf.Config.Config_LoRaConfig_RegionCode.CN, Protobuf.Config.Config_LoRaConfig_RegionCode.CN,
{ {
freq_start: 470.0, freqStart: 470.0,
freq_end: 510.0, freqEnd: 510.0,
duty_cycle: 100, dutyCycle: 100,
spacing: 0, spacing: 0,
power_limit: 19, powerLimit: 19,
}, },
], ],
[ [
Protobuf.Config.Config_LoRaConfig_RegionCode.JP, Protobuf.Config.Config_LoRaConfig_RegionCode.JP,
{ {
freq_start: 920.8, freqStart: 920.8,
freq_end: 927.8, freqEnd: 927.8,
duty_cycle: 100, dutyCycle: 100,
spacing: 0, spacing: 0,
power_limit: 16, powerLimit: 16,
}, },
], ],
[ [
Protobuf.Config.Config_LoRaConfig_RegionCode.ANZ, Protobuf.Config.Config_LoRaConfig_RegionCode.ANZ,
{ {
freq_start: 915.0, freqStart: 915.0,
freq_end: 928.0, freqEnd: 928.0,
duty_cycle: 100, dutyCycle: 100,
spacing: 0, spacing: 0,
power_limit: 30, powerLimit: 30,
}, },
], ],
[ [
Protobuf.Config.Config_LoRaConfig_RegionCode.RU, Protobuf.Config.Config_LoRaConfig_RegionCode.RU,
{ {
freq_start: 868.7, freqStart: 868.7,
freq_end: 869.2, freqEnd: 869.2,
duty_cycle: 100, dutyCycle: 100,
spacing: 0, spacing: 0,
power_limit: 20, powerLimit: 20,
}, },
], ],
[ [
Protobuf.Config.Config_LoRaConfig_RegionCode.KR, Protobuf.Config.Config_LoRaConfig_RegionCode.KR,
{ {
freq_start: 920.0, freqStart: 920.0,
freq_end: 923.0, freqEnd: 923.0,
duty_cycle: 100, dutyCycle: 100,
spacing: 0, spacing: 0,
power_limit: 0, powerLimit: 0,
}, },
], ],
[ [
Protobuf.Config.Config_LoRaConfig_RegionCode.TW, Protobuf.Config.Config_LoRaConfig_RegionCode.TW,
{ {
freq_start: 920.0, freqStart: 920.0,
freq_end: 925.0, freqEnd: 925.0,
duty_cycle: 100, dutyCycle: 100,
spacing: 0, spacing: 0,
power_limit: 0, powerLimit: 0,
}, },
], ],
[ [
Protobuf.Config.Config_LoRaConfig_RegionCode.IN, Protobuf.Config.Config_LoRaConfig_RegionCode.IN,
{ {
freq_start: 865.0, freqStart: 865.0,
freq_end: 867.0, freqEnd: 867.0,
duty_cycle: 100, dutyCycle: 100,
spacing: 0, spacing: 0,
power_limit: 30, powerLimit: 30,
}, },
], ],
[ [
Protobuf.Config.Config_LoRaConfig_RegionCode.NZ_865, Protobuf.Config.Config_LoRaConfig_RegionCode.NZ_865,
{ {
freq_start: 864.0, freqStart: 864.0,
freq_end: 868.0, freqEnd: 868.0,
duty_cycle: 100, dutyCycle: 100,
spacing: 0, spacing: 0,
power_limit: 36, powerLimit: 36,
}, },
], ],
[ [
Protobuf.Config.Config_LoRaConfig_RegionCode.TH, Protobuf.Config.Config_LoRaConfig_RegionCode.TH,
{ {
freq_start: 920.0, freqStart: 920.0,
freq_end: 925.0, freqEnd: 925.0,
duty_cycle: 100, dutyCycle: 100,
spacing: 0, spacing: 0,
power_limit: 16, powerLimit: 16,
}, },
], ],
[ [
Protobuf.Config.Config_LoRaConfig_RegionCode.UA_433, Protobuf.Config.Config_LoRaConfig_RegionCode.UA_433,
{ {
freq_start: 433.0, freqStart: 433.0,
freq_end: 434.7, freqEnd: 434.7,
duty_cycle: 10, dutyCycle: 10,
spacing: 0, spacing: 0,
power_limit: 10, powerLimit: 10,
}, },
], ],
[ [
Protobuf.Config.Config_LoRaConfig_RegionCode.UA_868, Protobuf.Config.Config_LoRaConfig_RegionCode.UA_868,
{ {
freq_start: 868.0, freqStart: 868.0,
freq_end: 868.6, freqEnd: 868.6,
duty_cycle: 1, dutyCycle: 1,
spacing: 0, spacing: 0,
power_limit: 14, powerLimit: 14,
}, },
], ],
[ [
Protobuf.Config.Config_LoRaConfig_RegionCode.MY_433, Protobuf.Config.Config_LoRaConfig_RegionCode.MY_433,
{ {
freq_start: 433.0, freqStart: 433.0,
freq_end: 435.0, freqEnd: 435.0,
duty_cycle: 100, dutyCycle: 100,
spacing: 0, spacing: 0,
power_limit: 20, powerLimit: 20,
}, },
], ],
[ [
Protobuf.Config.Config_LoRaConfig_RegionCode.MY_919, Protobuf.Config.Config_LoRaConfig_RegionCode.MY_919,
{ {
freq_start: 919.0, freqStart: 919.0,
freq_end: 924.0, freqEnd: 924.0,
duty_cycle: 100, dutyCycle: 100,
spacing: 0, spacing: 0,
power_limit: 27, powerLimit: 27,
}, },
], ],
[ [
Protobuf.Config.Config_LoRaConfig_RegionCode.LORA_24, Protobuf.Config.Config_LoRaConfig_RegionCode.LORA_24,
{ {
freq_start: 2400.0, freqStart: 2400.0,
freq_end: 2483.5, freqEnd: 2483.5,
duty_cycle: 100, dutyCycle: 100,
spacing: 0, spacing: 0,
power_limit: 10, powerLimit: 10,
}, },
], ],
[ [
Protobuf.Config.Config_LoRaConfig_RegionCode.UNSET, Protobuf.Config.Config_LoRaConfig_RegionCode.UNSET,
{ {
freq_start: 902.0, freqStart: 902.0,
freq_end: 928.0, freqEnd: 928.0,
duty_cycle: 100, dutyCycle: 100,
spacing: 0, spacing: 0,
power_limit: 30, powerLimit: 30,
}, },
], ],
]); ]);
@ -290,7 +290,7 @@ export const FrequencyCalculator = (): JSX.Element => {
const selectedRegion = RegionData.get(region); const selectedRegion = RegionData.get(region);
const selectedModemPreset = modemPresets.get(modemPreset); const selectedModemPreset = modemPresets.get(modemPreset);
const calculatedNumChannels = Math.floor( const calculatedNumChannels = Math.floor(
(selectedRegion.freq_end - selectedRegion.freq_start) / (selectedRegion.freqEnd - selectedRegion.freqStart) /
(selectedRegion.spacing + selectedModemPreset.bw / 1000), (selectedRegion.spacing + selectedModemPreset.bw / 1000),
); );
@ -304,7 +304,7 @@ export const FrequencyCalculator = (): JSX.Element => {
setChannel(updatedChannel); setChannel(updatedChannel);
setChannelFrequency( setChannelFrequency(
selectedRegion.freq_start + selectedRegion.freqStart +
selectedModemPreset.bw / 2000 + selectedModemPreset.bw / 2000 +
updatedChannel * (selectedModemPreset.bw / 1000), updatedChannel * (selectedModemPreset.bw / 1000),
); );
@ -318,7 +318,7 @@ export const FrequencyCalculator = (): JSX.Element => {
value={modemPreset} value={modemPreset}
onChange={(e) => onChange={(e) =>
setModemPreset( setModemPreset(
parseInt( Number.parseInt(
e.target.value, e.target.value,
) as Protobuf.Config.Config_LoRaConfig_ModemPreset, ) as Protobuf.Config.Config_LoRaConfig_ModemPreset,
) )
@ -335,7 +335,7 @@ export const FrequencyCalculator = (): JSX.Element => {
<label>Region:</label> <label>Region:</label>
<select <select
value={region} value={region}
onChange={(e) => setRegion(parseInt(e.target.value))} onChange={(e) => setRegion(Number.parseInt(e.target.value))}
> >
{Array.from(RegionData.keys()).map((key) => ( {Array.from(RegionData.keys()).map((key) => (
<option key={key} value={key}> <option key={key} value={key}>
@ -348,7 +348,7 @@ export const FrequencyCalculator = (): JSX.Element => {
<label>Channel:</label> <label>Channel:</label>
<select <select
value={channel} value={channel}
onChange={(e) => setChannel(parseInt(e.target.value))} onChange={(e) => setChannel(Number.parseInt(e.target.value))}
> >
{Array.from(Array(numChannels).keys()).map((key) => ( {Array.from(Array(numChannels).keys()).map((key) => (
<option key={key} value={key}> <option key={key} value={key}>

View file

@ -1,4 +1,4 @@
import { DeviceFirmwareResource } from "../../../utils/apiTypes"; import type { DeviceFirmwareResource } from "../../../utils/apiTypes";
export interface releaseCardProps { export interface releaseCardProps {
variant: string; variant: string;
@ -66,7 +66,9 @@ export const PlaceholderFirmwareCard = (): JSX.Element => {
<div className="rounded-md bg-gray-500 w-32 h-4" /> <div className="rounded-md bg-gray-500 w-32 h-4" />
</div> </div>
<div className="card__body rounded-md bg-gray-500 h-12" /> <div className="card__body rounded-md bg-gray-500 h-12" />
<a className="button disabled button--primary button--block">&nbsp;</a> <span className="button disabled button--primary button--block" href="#">
&nbsp;
</span>
<div className="rounded-md bg-gray-500 w-32 h-8" /> <div className="rounded-md bg-gray-500 w-32 h-8" />
<div className="rounded-md bg-gray-500 w-44 h-4" /> <div className="rounded-md bg-gray-500 w-44 h-4" />
<div className="rounded-md bg-gray-500 w-36 h-4" /> <div className="rounded-md bg-gray-500 w-36 h-4" />

View file

@ -10,7 +10,7 @@ import {
} from "@heroicons/react/24/solid"; } from "@heroicons/react/24/solid";
import Layout from "@theme/Layout"; import Layout from "@theme/Layout";
import { FirmwareReleases } from "../../utils/apiTypes"; import type { FirmwareReleases } from "../../utils/apiTypes";
import { fetcher } from "../../utils/swr"; import { fetcher } from "../../utils/swr";
import { import {
FirmwareCard, FirmwareCard,
@ -63,7 +63,8 @@ const Firmware = (): JSX.Element => {
<div className="card__body"> <div className="card__body">
<p> <p>
Devices such as T-Echo, RAK4631, and RAK11300 are flashed via Devices such as T-Echo, RAK4631, and RAK11300 are flashed via
filesystem. Use the web flasher to download applicable firmware. filesystem. Use the web flasher to download applicable
firmware.
</p> </p>
</div> </div>
<div className="card__footer mt-auto"> <div className="card__footer mt-auto">

View file

@ -4,7 +4,10 @@ import useBaseUrl from "@docusaurus/useBaseUrl";
import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; import useDocusaurusContext from "@docusaurus/useDocusaurusContext";
import Layout from "@theme/Layout"; import Layout from "@theme/Layout";
import { SocialCard, SocialCardProps } from "../components/homepage/SocialCard"; import {
SocialCard,
type SocialCardProps,
} from "../components/homepage/SocialCard";
const SocialCards: SocialCardProps[] = [ const SocialCards: SocialCardProps[] = [
{ {

View file

@ -85,7 +85,7 @@ const OEM = (): JSX.Element => {
<span>Font</span> <span>Font</span>
<select <select
onChange={(e) => { onChange={(e) => {
setOemFont(parseInt(e.target.value)); setOemFont(Number.parseInt(e.target.value));
}} }}
> >
{enumOptions.map(([name, value]) => ( {enumOptions.map(([name, value]) => (
@ -102,7 +102,7 @@ const OEM = (): JSX.Element => {
readFile(e.target.files[0]).then((data) => { readFile(e.target.files[0]).then((data) => {
setOemIconBits( setOemIconBits(
new Uint8Array( new Uint8Array(
data.split(",").map((s) => parseInt(s.trim(), 16)), data.split(",").map((s) => Number.parseInt(s.trim(), 16)),
), ),
); );
}); });
@ -113,7 +113,7 @@ const OEM = (): JSX.Element => {
type="number" type="number"
name="oemIconHeight" name="oemIconHeight"
onChange={(e) => { onChange={(e) => {
setOemIconHeight(parseInt(e.target.value)); setOemIconHeight(Number.parseInt(e.target.value));
}} }}
/> />
<span>Logo Width</span> <span>Logo Width</span>
@ -121,7 +121,7 @@ const OEM = (): JSX.Element => {
type="number" type="number"
name="oemIconWidth" name="oemIconWidth"
onChange={(e) => { onChange={(e) => {
setOemIconWidth(parseInt(e.target.value)); setOemIconWidth(Number.parseInt(e.target.value));
}} }}
/> />
<span>Boot Text</span> <span>Boot Text</span>
@ -132,7 +132,7 @@ const OEM = (): JSX.Element => {
setOemText(e.target.value); setOemText(e.target.value);
}} }}
/> />
<a <button
className="cursor-pointer rounded-md bg-tertiary p-2 hover:brightness-90" className="cursor-pointer rounded-md bg-tertiary p-2 hover:brightness-90"
download="OEM.bin" download="OEM.bin"
onClick={() => { onClick={() => {
@ -141,9 +141,10 @@ const OEM = (): JSX.Element => {
}); });
window.open(URL.createObjectURL(blob)); window.open(URL.createObjectURL(blob));
}} }}
type="button"
> >
Download Download
</a> </button>
{oemBytes.toString()} {oemBytes.toString()}
</div> </div>
</Layout> </Layout>

View file

@ -5,10 +5,10 @@ export default function calculateADC() {
const batFullPercent = 1; const batFullPercent = 1;
//variable //variable
const batteryChargePercent = const batteryChargePercent =
parseFloat( Number.parseFloat(
(<HTMLInputElement>document.getElementById("batteryChargePercent")).value, (<HTMLInputElement>document.getElementById("batteryChargePercent")).value,
) / 100; ) / 100;
const operativeAdcMultiplier = parseFloat( const operativeAdcMultiplier = Number.parseFloat(
(<HTMLInputElement>document.getElementById("operativeAdcMultiplier")).value, (<HTMLInputElement>document.getElementById("operativeAdcMultiplier")).value,
); );
const result = const result =

View file

@ -1,23 +1,23 @@
import typography from "@tailwindcss/typography";
import type { Config } from "tailwindcss"; import type { Config } from "tailwindcss";
import typography from '@tailwindcss/typography'
export default { export default {
content: ["./src/**/*.{js,jsx,ts,tsx}"], content: ["./src/**/*.{js,jsx,ts,tsx}"],
darkMode: "class", darkMode: "class",
theme: { theme: {
extend: { extend: {
colors: { colors: {
accent: "var(--accent)", accent: "var(--accent)",
base: "var(--base)", base: "var(--base)",
primary: "var(--primary)", primary: "var(--primary)",
secondary: "var(--secondary)", secondary: "var(--secondary)",
tertiary: "var(--tertiary)", tertiary: "var(--tertiary)",
mute: "var(--mute)", mute: "var(--mute)",
primaryInv: "var(--primaryInv)", primaryInv: "var(--primaryInv)",
secondaryInv: "var(--secondaryInv)", secondaryInv: "var(--secondaryInv)",
tertiaryInv: "var(--tertiaryInv)", tertiaryInv: "var(--tertiaryInv)",
}, },
}, },
}, },
plugins: [typography()], plugins: [typography()],
} satisfies Config; } satisfies Config;