26 lines
574 B
TypeScript
26 lines
574 B
TypeScript
import { z } from "zod"
|
|
|
|
export const mapLocationSchema = z
|
|
.object({
|
|
longitude: z.number().nullable(),
|
|
latitude: z.number().nullable(),
|
|
default_zoom: z.number().nullish(),
|
|
})
|
|
.nullish()
|
|
.transform((val) => {
|
|
if (val) {
|
|
const longitude = val.longitude
|
|
const latitude = val.latitude
|
|
const default_zoom = val.default_zoom || 3
|
|
|
|
if (longitude !== null && latitude !== null) {
|
|
return {
|
|
longitude,
|
|
latitude,
|
|
default_zoom: Math.round(default_zoom),
|
|
}
|
|
}
|
|
}
|
|
return null
|
|
})
|