Updated external db sync to handle spool types and new color hex format
This commit is contained in:
@@ -10,6 +10,14 @@ import { IFilament } from "./model";
|
||||
export async function createFilamentFromExternal(externalFilament: ExternalFilament): Promise<IFilament> {
|
||||
const vendor = await getOrCreateVendorFromExternal(externalFilament.manufacturer);
|
||||
|
||||
let color_hex = undefined;
|
||||
if (externalFilament.color_hex) {
|
||||
color_hex = externalFilament.color_hex;
|
||||
} else if (externalFilament.color_hexes && externalFilament.color_hexes.length > 0) {
|
||||
// TODO: Support for multi-color filaments
|
||||
color_hex = externalFilament.color_hexes[0];
|
||||
}
|
||||
|
||||
const body: Omit<IFilament, "id" | "registered" | "extra"> & { vendor_id: number } = {
|
||||
name: externalFilament.name,
|
||||
material: externalFilament.material,
|
||||
@@ -18,7 +26,7 @@ export async function createFilamentFromExternal(externalFilament: ExternalFilam
|
||||
diameter: externalFilament.diameter,
|
||||
weight: externalFilament.weight,
|
||||
spool_weight: externalFilament.spool_weight || undefined,
|
||||
color_hex: externalFilament.color_hex,
|
||||
color_hex: color_hex,
|
||||
settings_extruder_temp: externalFilament.extruder_temp || undefined,
|
||||
settings_bed_temp: externalFilament.bed_temp || undefined,
|
||||
external_id: externalFilament.id,
|
||||
|
||||
@@ -3,7 +3,7 @@ import { formatLength, formatWeight } from "../../utils/parsing";
|
||||
import { getAPIURL } from "../../utils/url";
|
||||
import { ISpool } from "./model";
|
||||
import { IFilament } from "../filaments/model";
|
||||
import { useGetExternalDBFilaments } from "../../utils/queryExternalDB";
|
||||
import { SpoolType, useGetExternalDBFilaments } from "../../utils/queryExternalDB";
|
||||
import { useMemo } from "react";
|
||||
|
||||
export async function setSpoolArchived(spool: ISpool, archived: boolean) {
|
||||
@@ -28,7 +28,8 @@ export function formatFilamentLabel(
|
||||
diameter: number,
|
||||
vendorName?: string,
|
||||
material?: string,
|
||||
weight?: number
|
||||
weight?: number,
|
||||
spoolType?: SpoolType
|
||||
): string {
|
||||
const portions = [];
|
||||
if (vendorName) {
|
||||
@@ -43,6 +44,9 @@ export function formatFilamentLabel(
|
||||
if (weight) {
|
||||
extras.push(formatWeight(weight));
|
||||
}
|
||||
if (spoolType) {
|
||||
extras.push(spoolType.charAt(0).toUpperCase() + spoolType.slice(1) + " spool");
|
||||
}
|
||||
return `${portions.join(" - ")} (${extras.join(", ")})`;
|
||||
}
|
||||
|
||||
@@ -89,7 +93,14 @@ export function useGetFilamentSelectOptions() {
|
||||
const data =
|
||||
externalFilaments.data?.map((item) => {
|
||||
return {
|
||||
label: formatFilamentLabel(item.name, item.diameter, item.manufacturer, item.material, item.weight),
|
||||
label: formatFilamentLabel(
|
||||
item.name,
|
||||
item.diameter,
|
||||
item.manufacturer,
|
||||
item.material,
|
||||
item.weight,
|
||||
item.spool_type
|
||||
),
|
||||
value: item.id,
|
||||
weight: item.weight,
|
||||
spool_weight: item.spool_weight || undefined,
|
||||
|
||||
Reference in New Issue
Block a user