diff --git a/src/components/choice/Choice.tsx b/src/components/choice/Choice.tsx
index e1cc591..0f9b3fa 100644
--- a/src/components/choice/Choice.tsx
+++ b/src/components/choice/Choice.tsx
@@ -11,8 +11,8 @@ type ChoiceProps = {
const Choice = ({ choice, onSelect }: ChoiceProps) => {
return (
<>
-
+
{choice["choice-name"]}
+
{choice.choices.map((subChoice) => (
diff --git a/src/services/GitHubService.ts b/src/services/GitHubService.ts
index 03486c0..c5939b5 100644
--- a/src/services/GitHubService.ts
+++ b/src/services/GitHubService.ts
@@ -3,7 +3,7 @@ export type GithubReleaseAsset = {
name: string;
};
-const RESOURCES_BASE_URL =
+export const RESOURCES_BASE_URL =
"https://raw.githubusercontent.com/bdring/fluidnc-releases/main/releases";
export const CONFIG_BASE_URL =
diff --git a/src/services/InstallService.ts b/src/services/InstallService.ts
index e716761..a758ccb 100644
--- a/src/services/InstallService.ts
+++ b/src/services/InstallService.ts
@@ -56,6 +56,52 @@ const convertImagesToFlashFiles = (
};
export const InstallService = {
+ installImage: async (
+ serialPort: SerialPort,
+ fileData: Uint8Array,
+ onProgress: (FlashProgress) => void,
+ onState: (state: InstallerState) => void,
+ onLogData: (data: string) => void,
+ baud: number = 921600
+ ): Promise
=> {
+ try {
+ const flashFiles: FlashFile[] = [
+ {
+ fileName: "firmware.bin",
+ data: fileData,
+ address: 0x10000
+ }
+ ];
+
+ await flashDevice(
+ serialPort.getNativeSerialPort(),
+ flashFiles,
+ false,
+ baud,
+ onProgress,
+ onState,
+ onLogData
+ );
+
+ logEvent(analytics, "install", {
+ version: "custom-image",
+ success: true
+ });
+ } catch (error) {
+ logEvent(analytics, "install", {
+ version: "custom-image",
+ success: false,
+ error: error
+ });
+
+ console.error(error);
+ onState(InstallerState.ERROR);
+ throw "Was not able to flash device: " + error;
+ }
+
+ return Promise.resolve();
+ },
+
installChoice: async (
release: GithubRelease,
serialPort: SerialPort,