import { FunctionalComponent, JSX } from "preact"
import { useEffect, useState, useRef } from "preact/hooks"
import { ButtonImg, Loading, CenterLeft, Progress } from "../../components/Controls"
import { useHttpQueue, useTargetCommands } from "../../hooks"
import { useWebSocketService } from "../../hooks/useWebSocketService"
import { espHttpURL } from "../../components/Helpers"
import { T } from "../../components/Translations"
import {
useUiContext,
useModalsContext,
useToastsContext,
useUiContextFn,
useSettingsContext,
useSettingsContextFn,
} from "../../contexts"
import { Esp3dVersion, webUIversion } from "../../components/App/version"
import { Github, RefreshCcw, UploadCloud, LifeBuoy, Info, BookOpen, Download } from "preact-feather"
import { webUiUrl, fwUrl, Name, restartdelay } from "../../targets"
import {
showConfirmationModal,
showModal,
showProgressModal,
showReleaseNotesModal,
showFirmwareUpdateModal,
} from "../../components/Modal"
import { GitHubService } from "../../Services/GitHubService"
import type { GitHubRelease } from "../../types/github.types"
import { VersionBadge } from "../../components/VersionBadge"
interface AboutData {
id: string
value: string
}
interface ProgressBar {
update?: (value: number) => void
}
let about: AboutData[] = []
const defaultHelpUrl = "http://wiki.fluidnc.com/"
const CustomEntry: FunctionalComponent = (): JSX.Element => {
const { interfaceSettings } = useSettingsContext()
let HelpEntry: JSX.Element | null = null
let InfoEntry: JSX.Element | null = null
if (
interfaceSettings.current.custom &&
(interfaceSettings.current.custom.help || interfaceSettings.current.custom.information)
) {
if (interfaceSettings.current?.custom?.help) {
const helpUrl = interfaceSettings.current.custom.help
const onClickHelp = (e: MouseEvent) => {
useUiContextFn.haptic()
if (helpUrl) (window as any).open(helpUrl, "_blank")
;(e.target as HTMLElement).blur()
}
HelpEntry =
Choose an update method:
Choose an update method: