import * as React from "react"; import { Show } from "./show"; import { Edit } from "./edit"; import { WebcamPanelProps } from "./interfaces"; import { TaggedWebcamFeed, SpecialStatus } from "farmbot"; import { edit, save, destroy, init } from "../../api/crud"; import { error } from "farmbot-toastr"; import { WebcamFeed } from "farmbot/dist/resources/api_resources"; import { t } from "../../i18next_wrapper"; const HTTP = "http://"; type S = { activeMenu: "edit" | "show" }; type P = { feeds: TaggedWebcamFeed[]; dispatch: Function; }; export const preToggleCleanup = (dispatch: Function) => (f: TaggedWebcamFeed) => { const { uuid } = f; const { name, url, id } = f.body; if (!name || !url || !id) { // Delete empty or unsaved records dispatch(destroy(uuid, true)); return; } if (f.specialStatus !== SpecialStatus.SAVED) { // Stash unsaved to preexisting records dispatch(save(uuid)); return; } }; export class WebcamPanel extends React.Component
{
state: S = { activeMenu: "show" };
init = () =>
this.props.dispatch(init("WebcamFeed", { url: HTTP, name: "" }))
edit = (tr: TaggedWebcamFeed, update: Partial