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
- name: Run Biome
run: biome ci .
run: biome ci . --diagnostic-level=error
build:
runs-on: ubuntu-latest
steps:
@ -40,4 +40,4 @@ jobs:
run: pnpm install
- name: Build Package
run: pnpm run build
run: pnpm run build

View file

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

View file

@ -4,137 +4,137 @@ require("dotenv").config();
/** @type {import('@docusaurus/types').Config} */
const config = {
title: "Meshtastic",
tagline:
"An open source, off-grid, decentralized, mesh network built to run on affordable, low-power devices",
url: "https://meshtastic.org",
baseUrl: "/",
trailingSlash: true,
onBrokenLinks: "throw",
onBrokenMarkdownLinks: "warn",
favicon: "design/web/favicon.ico",
organizationName: "meshtastic",
projectName: "meshtastic",
themeConfig: /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ {
docs: {
sidebar: {
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",
},
},
},
title: "Meshtastic",
tagline:
"An open source, off-grid, decentralized, mesh network built to run on affordable, low-power devices",
url: "https://meshtastic.org",
baseUrl: "/",
trailingSlash: true,
onBrokenLinks: "throw",
onBrokenMarkdownLinks: "warn",
favicon: "design/web/favicon.ico",
organizationName: "meshtastic",
projectName: "meshtastic",
themeConfig: /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ {
docs: {
sidebar: {
autoCollapseCategories: true,
},
},
plugins: [
() => {
return {
name: "docusaurus-tailwindcss",
configurePostCss(postcssOptions) {
postcssOptions.plugins.push(require("tailwindcss"));
postcssOptions.plugins.push(require("autoprefixer"));
return postcssOptions;
},
};
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",
},
],
presets: [
[
"@docusaurus/preset-classic",
/** @type {import('@docusaurus/preset-classic').Options} */
{
label: "Downloads",
to: "downloads",
},
{
label: "About",
position: "right",
items: [
{
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"),
},
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: [
() => {
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,
},
markdown: {
mermaid: true,
},
themes: ["@docusaurus/theme-mermaid"],
],
customFields: {
API_URL: process.env.API_URL,
},
markdown: {
mermaid: true,
},
themes: ["@docusaurus/theme-mermaid"],
};
module.exports = config;

View file

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

View file

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

View file

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

View file

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

View file

@ -1,4 +1,4 @@
import React from "react";
import type React from "react";
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";

View file

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

View file

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

View file

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

View file

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

View file

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