* feat: add nestjs replacement, remove nestjs * feat: add weather widget * fix: lock issue * fix: format issue * fix: deepsource issues * fix: change timezone to auto
40 lines
1.0 KiB
TypeScript
40 lines
1.0 KiB
TypeScript
import { IconCloud } from "@homarr/ui";
|
|
import { z } from "@homarr/validation";
|
|
|
|
import { createWidgetDefinition } from "../definition";
|
|
import { optionsBuilder } from "../options";
|
|
|
|
export const { definition, componentLoader } = createWidgetDefinition(
|
|
"weather",
|
|
{
|
|
icon: IconCloud,
|
|
options: optionsBuilder.from(
|
|
(factory) => ({
|
|
isFormatFahrenheit: factory.switch(),
|
|
location: factory.location({
|
|
defaultValue: {
|
|
name: "Paris",
|
|
latitude: 48.85341,
|
|
longitude: 2.3488,
|
|
},
|
|
}),
|
|
showCity: factory.switch(),
|
|
hasForecast: factory.switch(),
|
|
forecastDayCount: factory.slider({
|
|
defaultValue: 5,
|
|
validate: z.number().min(1).max(7),
|
|
step: 1,
|
|
withDescription: true,
|
|
}),
|
|
}),
|
|
{
|
|
forecastDayCount: {
|
|
shouldHide({ hasForecast }) {
|
|
return !hasForecast;
|
|
},
|
|
},
|
|
},
|
|
),
|
|
},
|
|
).withDynamicImport(() => import("./component"));
|