From 92869beb32c2147b25f0d68d4a380cc66a9d3c8c Mon Sep 17 00:00:00 2001 From: Rick Carlino Date: Tue, 10 Dec 2019 13:53:20 -0600 Subject: [PATCH] Remove all `let` exports in favor of `const` exports. --- frontend/__test_support__/fake_state/bot.ts | 2 +- .../__test_support__/fake_state/config.ts | 2 +- .../__test_support__/fake_state/draggable.ts | 2 +- .../__test_support__/fake_state/images.ts | 2 +- .../fake_state/peripherals.ts | 2 +- .../__test_support__/fake_state/resources.ts | 2 +- frontend/__test_support__/fake_state/token.ts | 2 +- .../farm_event_calendar_support.ts | 4 ++-- .../resource_index_builder.ts | 2 +- frontend/__test_support__/user.ts | 4 ++-- frontend/auth/reducer.ts | 2 +- frontend/config/reducer.ts | 2 +- frontend/connectivity/actions.ts | 2 +- frontend/connectivity/connect_device.ts | 2 +- frontend/connectivity/index.ts | 4 ++-- frontend/connectivity/reducer.ts | 2 +- frontend/controls/axis_display_group.tsx | 2 +- frontend/controls/axis_input_box.tsx | 2 +- frontend/devices/actions.ts | 2 +- .../components/hardware_settings/header.tsx | 2 +- frontend/devices/reducer.ts | 4 ++-- frontend/devices/timezones/tz_list.ts | 2 +- frontend/draggable/reducer.ts | 2 +- frontend/draggable/step_dragger.tsx | 2 +- .../farm_designer/farm_events/farm_events.tsx | 2 +- .../farm_events/map_state_to_props.ts | 4 ++-- .../map_state_to_props_add_edit.ts | 6 +++--- frontend/farm_designer/openfarm.ts | 4 ++-- frontend/farm_designer/reducer.ts | 4 ++-- frontend/farm_designer/util.ts | 2 +- frontend/farmware/reducer.ts | 4 ++-- frontend/farmware/weed_detector/selectors.ts | 4 ++-- frontend/help/reducer.ts | 4 ++-- frontend/interceptor_support.ts | 4 ++-- frontend/nav/mobile_menu.tsx | 2 +- frontend/nav/ticker_list.tsx | 2 +- frontend/open_farm/icons.ts | 2 +- frontend/redux/middlewares.ts | 2 +- frontend/redux/root_reducer.ts | 2 +- frontend/redux/store.ts | 5 ++--- frontend/redux/subscribers.ts | 2 +- frontend/refresh_token.ts | 2 +- frontend/regimens/reducer.ts | 4 ++-- frontend/resources/actions.ts | 6 +++--- frontend/resources/selectors.ts | 8 ++++---- frontend/resources/selectors_by_id.ts | 16 +++++++-------- frontend/resources/selectors_by_kind.ts | 14 ++++++------- frontend/resources/tagged_resources.ts | 20 +++++++++---------- frontend/sequences/reducer.ts | 2 +- .../sequences/step_tiles/tile_if/index.tsx | 2 +- frontend/ui/expandable_header.tsx | 2 +- frontend/util/util.ts | 2 +- 52 files changed, 94 insertions(+), 95 deletions(-) diff --git a/frontend/__test_support__/fake_state/bot.ts b/frontend/__test_support__/fake_state/bot.ts index 38c2e4beb..1b0bef683 100644 --- a/frontend/__test_support__/fake_state/bot.ts +++ b/frontend/__test_support__/fake_state/bot.ts @@ -1,6 +1,6 @@ import { Everything } from "../../interfaces"; -export let bot: Everything["bot"] = { +export const bot: Everything["bot"] = { "consistent": true, "stepSize": 100, "controlPanelState": { diff --git a/frontend/__test_support__/fake_state/config.ts b/frontend/__test_support__/fake_state/config.ts index 39efa55b3..f10cbbfc5 100644 --- a/frontend/__test_support__/fake_state/config.ts +++ b/frontend/__test_support__/fake_state/config.ts @@ -1,6 +1,6 @@ import { Everything } from "../../interfaces"; -export let config: Everything["config"] = { +export const config: Everything["config"] = { "host": "localhost", "port": "3000" }; diff --git a/frontend/__test_support__/fake_state/draggable.ts b/frontend/__test_support__/fake_state/draggable.ts index ffe1f8ee3..5a2592e6b 100644 --- a/frontend/__test_support__/fake_state/draggable.ts +++ b/frontend/__test_support__/fake_state/draggable.ts @@ -1,5 +1,5 @@ import { Everything } from "../../interfaces"; -export let draggable: Everything["draggable"] = { +export const draggable: Everything["draggable"] = { "dataTransfer": {} }; diff --git a/frontend/__test_support__/fake_state/images.ts b/frontend/__test_support__/fake_state/images.ts index 072c41386..c032dd147 100644 --- a/frontend/__test_support__/fake_state/images.ts +++ b/frontend/__test_support__/fake_state/images.ts @@ -1,6 +1,6 @@ import { TaggedImage, SpecialStatus } from "farmbot"; -export let fakeImages: TaggedImage[] = [ +export const fakeImages: TaggedImage[] = [ { "kind": "Image", "specialStatus": SpecialStatus.SAVED, diff --git a/frontend/__test_support__/fake_state/peripherals.ts b/frontend/__test_support__/fake_state/peripherals.ts index 59585fbc5..43be291df 100644 --- a/frontend/__test_support__/fake_state/peripherals.ts +++ b/frontend/__test_support__/fake_state/peripherals.ts @@ -1,5 +1,5 @@ import { Everything } from "../../interfaces"; -export let peripherals: Everything["Peripheral"] = { +export const peripherals: Everything["Peripheral"] = { "isEditing": true }; diff --git a/frontend/__test_support__/fake_state/resources.ts b/frontend/__test_support__/fake_state/resources.ts index 865f2c591..ea25f4087 100644 --- a/frontend/__test_support__/fake_state/resources.ts +++ b/frontend/__test_support__/fake_state/resources.ts @@ -34,7 +34,7 @@ import { import { FirmwareConfig } from "farmbot/dist/resources/configs/firmware"; import { MessageType } from "../../sequences/interfaces"; -export let resources: Everything["resources"] = buildResourceIndex(); +export const resources: Everything["resources"] = buildResourceIndex(); let idCounter = 1; export function fakeSequence(): TaggedSequence { diff --git a/frontend/__test_support__/fake_state/token.ts b/frontend/__test_support__/fake_state/token.ts index 26ae875c4..07edbdd65 100644 --- a/frontend/__test_support__/fake_state/token.ts +++ b/frontend/__test_support__/fake_state/token.ts @@ -1,6 +1,6 @@ import { AuthState } from "../../auth/interfaces"; -export let auth: AuthState = { +export const auth: AuthState = { "token": { "unencoded": { "jti": "xyz", diff --git a/frontend/__test_support__/farm_event_calendar_support.ts b/frontend/__test_support__/farm_event_calendar_support.ts index bf3429287..9d4d84b26 100644 --- a/frontend/__test_support__/farm_event_calendar_support.ts +++ b/frontend/__test_support__/farm_event_calendar_support.ts @@ -12,7 +12,7 @@ export const TIME = { SATURDAY: moment("2017-06-24T06:30:00.000-05:00") }; -export let fakeFarmEventWithExecutable = (): FarmEventWithExecutable => { +export const fakeFarmEventWithExecutable = (): FarmEventWithExecutable => { return { id: 1, start_time: "---", @@ -29,7 +29,7 @@ export let fakeFarmEventWithExecutable = (): FarmEventWithExecutable => { }; }; -export let calendarRows = [ +export const calendarRows = [ { "sortKey": 1500922800, "year": 17, diff --git a/frontend/__test_support__/resource_index_builder.ts b/frontend/__test_support__/resource_index_builder.ts index 18113639e..0a0b4ca47 100644 --- a/frontend/__test_support__/resource_index_builder.ts +++ b/frontend/__test_support__/resource_index_builder.ts @@ -328,7 +328,7 @@ const log: TaggedLog = { uuid: "Log.1091396.70" }; -export let FAKE_RESOURCES: TaggedResource[] = [ +export const FAKE_RESOURCES: TaggedResource[] = [ tr1, fakeDevice(), tr2, diff --git a/frontend/__test_support__/user.ts b/frontend/__test_support__/user.ts index b2fe1c6d6..c0cc3746a 100644 --- a/frontend/__test_support__/user.ts +++ b/frontend/__test_support__/user.ts @@ -1,7 +1,7 @@ import { User } from "farmbot/dist/resources/api_resources"; import { TaggedUser, SpecialStatus } from "farmbot"; -export let user: User = { +export const user: User = { created_at: "2016-10-05T03:02:58.000Z", email: "farmbot1@farmbot.io", id: 2, @@ -9,7 +9,7 @@ export let user: User = { updated_at: "2017-08-04T19:53:29.724Z" }; -export let taggedUser: TaggedUser = { +export const taggedUser: TaggedUser = { kind: "User", uuid: "1234-5678", specialStatus: SpecialStatus.SAVED, diff --git a/frontend/auth/reducer.ts b/frontend/auth/reducer.ts index 72efd04d4..a1caa79ac 100644 --- a/frontend/auth/reducer.ts +++ b/frontend/auth/reducer.ts @@ -2,7 +2,7 @@ import { AuthState } from "./interfaces"; import { generateReducer } from "../redux/generate_reducer"; import { Actions } from "../constants"; -export let authReducer = generateReducer(undefined) +export const authReducer = generateReducer(undefined) .add(Actions.REPLACE_TOKEN, (_, { payload }) => { return payload; }); diff --git a/frontend/config/reducer.ts b/frontend/config/reducer.ts index 00714c230..0815518de 100644 --- a/frontend/config/reducer.ts +++ b/frontend/config/reducer.ts @@ -10,7 +10,7 @@ const initialState: ConfigState = { port: API.inferPort() }; -export let configReducer = generateReducer(initialState) +export const configReducer = generateReducer(initialState) .add(Actions.CHANGE_API_PORT, (s, { payload }) => { s.port = payload.port.replace(/\D/g, ""); return s; diff --git a/frontend/connectivity/actions.ts b/frontend/connectivity/actions.ts index b5e9281d4..b9e4c730f 100644 --- a/frontend/connectivity/actions.ts +++ b/frontend/connectivity/actions.ts @@ -14,4 +14,4 @@ const change = (state: "up" | "down") => export const networkUp = change("up"); -export let networkDown = change("down"); +export const networkDown = change("down"); diff --git a/frontend/connectivity/connect_device.ts b/frontend/connectivity/connect_device.ts index b0b04233c..3922c62a5 100644 --- a/frontend/connectivity/connect_device.ts +++ b/frontend/connectivity/connect_device.ts @@ -202,6 +202,6 @@ export const attachEventListeners = }; /** Connect to MQTT and attach all relevant event handlers. */ -export let connectDevice = (token: AuthState) => +export const connectDevice = (token: AuthState) => (dispatch: Function, getState: GetState) => fetchNewDevice(token) .then(bot => attachEventListeners(bot, dispatch, getState), onOffline); diff --git a/frontend/connectivity/index.ts b/frontend/connectivity/index.ts index 8451d5a5b..138366c50 100644 --- a/frontend/connectivity/index.ts +++ b/frontend/connectivity/index.ts @@ -37,13 +37,13 @@ export const dispatchQosStart = (id: string) => { }); }; -export let dispatchNetworkUp = (edge: Edge, at: number) => { +export const dispatchNetworkUp = (edge: Edge, at: number) => { if (shouldThrottle(edge, at)) { return; } store.dispatch(networkUp(edge, at)); bumpThrottle(edge, at); }; -export let dispatchNetworkDown = (edge: Edge, at: number) => { +export const dispatchNetworkDown = (edge: Edge, at: number) => { if (shouldThrottle(edge, at)) { return; } store.dispatch(networkDown(edge, at)); bumpThrottle(edge, at); diff --git a/frontend/connectivity/reducer.ts b/frontend/connectivity/reducer.ts index 4a1f3f3af..90e322107 100644 --- a/frontend/connectivity/reducer.ts +++ b/frontend/connectivity/reducer.ts @@ -17,7 +17,7 @@ export const DEFAULT_STATE: ConnectionState = { }; export type PingResultPayload = { id: string, at: number }; -export let connectivityReducer = +export const connectivityReducer = generateReducer(DEFAULT_STATE) .add<{ id: string }>(Actions.PING_START, (s, { payload }) => { return { ...s, pings: startPing(s.pings, payload.id) }; diff --git a/frontend/controls/axis_display_group.tsx b/frontend/controls/axis_display_group.tsx index 9e2447d7e..601e8b812 100644 --- a/frontend/controls/axis_display_group.tsx +++ b/frontend/controls/axis_display_group.tsx @@ -8,7 +8,7 @@ const Axis = ({ val }: { val: number | undefined }) => ; -export let AxisDisplayGroup = ({ position, label }: AxisDisplayGroupProps) => { +export const AxisDisplayGroup = ({ position, label }: AxisDisplayGroupProps) => { const { x, y, z } = position; return diff --git a/frontend/controls/axis_input_box.tsx b/frontend/controls/axis_input_box.tsx index c77dfab20..663b6c463 100644 --- a/frontend/controls/axis_input_box.tsx +++ b/frontend/controls/axis_input_box.tsx @@ -3,7 +3,7 @@ import { AxisInputBoxProps } from "./interfaces"; import { Col, BlurableInput } from "../ui/index"; import { isUndefined } from "lodash"; -export let AxisInputBox = ({ onChange, value, axis }: AxisInputBoxProps) => { +export const AxisInputBox = ({ onChange, value, axis }: AxisInputBoxProps) => { return +export const fetchMinOsFeatureData = (url: string) => (dispatch: Function) => { axios .get(url) diff --git a/frontend/devices/components/hardware_settings/header.tsx b/frontend/devices/components/hardware_settings/header.tsx index 23f9bb232..3536d115a 100644 --- a/frontend/devices/components/hardware_settings/header.tsx +++ b/frontend/devices/components/hardware_settings/header.tsx @@ -10,7 +10,7 @@ interface Props { expanded: boolean; } -export let Header = (props: Props) => { +export const Header = (props: Props) => { const { dispatch, name, title, expanded } = props; return ) => { return state; }; -export let initialState = (): BotState => ({ +export const initialState = (): BotState => ({ consistent: true, stepSize: 100, controlPanelState: { @@ -81,7 +81,7 @@ export let initialState = (): BotState => ({ } }); -export let botReducer = generateReducer(initialState()) +export const botReducer = generateReducer(initialState()) .afterEach(afterEach) .add(Actions.SET_CONSISTENCY, (s, a) => { s.consistent = a.payload; diff --git a/frontend/devices/timezones/tz_list.ts b/frontend/devices/timezones/tz_list.ts index 47952c934..f2a359eb5 100644 --- a/frontend/devices/timezones/tz_list.ts +++ b/frontend/devices/timezones/tz_list.ts @@ -1,4 +1,4 @@ -export let list = ["Africa/Abidjan", +export const list = ["Africa/Abidjan", "Africa/Accra", "Africa/Addis_Ababa", "Africa/Algiers", diff --git a/frontend/draggable/reducer.ts b/frontend/draggable/reducer.ts index 4c76c3a2e..dbcca7265 100644 --- a/frontend/draggable/reducer.ts +++ b/frontend/draggable/reducer.ts @@ -6,7 +6,7 @@ const INITIAL_STATE: DraggableState = { dataTransfer: {} }; -export let draggableReducer = generateReducer(INITIAL_STATE) +export const draggableReducer = generateReducer(INITIAL_STATE) .add(Actions.PUT_DATA_XFER, (s, { payload }) => { s.dataTransfer[payload.uuid] = payload; return s; diff --git a/frontend/draggable/step_dragger.tsx b/frontend/draggable/step_dragger.tsx index 9672b2adf..0edcdae51 100644 --- a/frontend/draggable/step_dragger.tsx +++ b/frontend/draggable/step_dragger.tsx @@ -18,7 +18,7 @@ export const NULL_DRAGGER_ID = 0xCAFEF00D; * Drag this! * * */ -export let stepDragEventHandler = (dispatch: Function, +export const stepDragEventHandler = (dispatch: Function, step: Step, intent: DataXferIntent, draggerId: number) => { diff --git a/frontend/farm_designer/farm_events/farm_events.tsx b/frontend/farm_designer/farm_events/farm_events.tsx index 8bba4341b..843effaaf 100644 --- a/frontend/farm_designer/farm_events/farm_events.tsx +++ b/frontend/farm_designer/farm_events/farm_events.tsx @@ -161,4 +161,4 @@ export class PureFarmEvents * It avoids mocking `connect` in unit tests. * See testing pattern noted here: https://github.com/airbnb/enzyme/issues/98 */ -export let FarmEvents = connect(mapStateToProps)(PureFarmEvents); +export const FarmEvents = connect(mapStateToProps)(PureFarmEvents); diff --git a/frontend/farm_designer/farm_events/map_state_to_props.ts b/frontend/farm_designer/farm_events/map_state_to_props.ts index f490d1d2a..a3f257473 100644 --- a/frontend/farm_designer/farm_events/map_state_to_props.ts +++ b/frontend/farm_designer/farm_events/map_state_to_props.ts @@ -65,7 +65,7 @@ export const nextRegItemTimes = && time.isSameOrAfter(moment(startTime))); }; -export let regimenCalendarAdder = ( +export const regimenCalendarAdder = ( index: ResourceIndex, timeSettings: TimeSettings) => (f: FarmEventWithRegimen, c: Calendar, now = moment()) => { const { regimen_items } = f.executable; @@ -96,7 +96,7 @@ export let regimenCalendarAdder = ( } }; -export let addSequenceToCalendar = +export const addSequenceToCalendar = (f: FarmEventWithSequence, c: Calendar, timeSettings: TimeSettings, now = moment()) => { const schedule = scheduleForFarmEvent(f, now); diff --git a/frontend/farm_designer/farm_events/map_state_to_props_add_edit.ts b/frontend/farm_designer/farm_events/map_state_to_props_add_edit.ts index e56c9f2bb..f5cb98557 100644 --- a/frontend/farm_designer/farm_events/map_state_to_props_add_edit.ts +++ b/frontend/farm_designer/farm_events/map_state_to_props_add_edit.ts @@ -36,17 +36,17 @@ import { getFbosConfig } from "../../resources/getters"; import { t } from "../../i18next_wrapper"; import { DevSettings } from "../../account/dev/dev_support"; -export let formatTime = (input: string, timeSettings: TimeSettings) => { +export const formatTime = (input: string, timeSettings: TimeSettings) => { const iso = new Date(input).toISOString(); return moment(iso).utcOffset(timeSettings.utcOffset).format("HH:mm"); }; -export let formatDate = (input: string, timeSettings: TimeSettings) => { +export const formatDate = (input: string, timeSettings: TimeSettings) => { const iso = new Date(input).toISOString(); return moment(iso).utcOffset(timeSettings.utcOffset).format("YYYY-MM-DD"); }; -export let repeatOptions = [ +export const repeatOptions = [ { label: t("Minutes"), value: "minutely", name: "time_unit" }, { label: t("Hours"), value: "hourly", name: "time_unit" }, { label: t("Days"), value: "daily", name: "time_unit" }, diff --git a/frontend/farm_designer/openfarm.ts b/frontend/farm_designer/openfarm.ts index 5153f1cef..10899a263 100644 --- a/frontend/farm_designer/openfarm.ts +++ b/frontend/farm_designer/openfarm.ts @@ -68,8 +68,8 @@ export namespace OpenFarm { attributes: ImageAttrs; } - export let cropUrl = "https://openfarm.cc/api/v1/crops"; - export let browsingCropUrl = "https://openfarm.cc/crops/"; + export const cropUrl = "https://openfarm.cc/api/v1/crops"; + export const browsingCropUrl = "https://openfarm.cc/crops/"; } /** Returned by https://openfarm.cc/api/v1/crops?filter=q */ export interface CropSearchResult { diff --git a/frontend/farm_designer/reducer.ts b/frontend/farm_designer/reducer.ts index 8387003c2..2afc9e28f 100644 --- a/frontend/farm_designer/reducer.ts +++ b/frontend/farm_designer/reducer.ts @@ -7,7 +7,7 @@ import { Actions } from "../constants"; import { BotPosition } from "../devices/interfaces"; import { PointGroupSortType } from "farmbot/dist/resources/api_resources"; -export let initialState: DesignerState = { +export const initialState: DesignerState = { selectedPlants: undefined, hoveredPlant: { plantUUID: undefined, @@ -24,7 +24,7 @@ export let initialState: DesignerState = { tryGroupSortType: undefined, }; -export let designer = generateReducer(initialState) +export const designer = generateReducer(initialState) .add(Actions.SEARCH_QUERY_CHANGE, (s, { payload }) => { s.cropSearchInProgress = true; const state = cloneDeep(s); diff --git a/frontend/farm_designer/util.ts b/frontend/farm_designer/util.ts index c7de1fd8d..40500c821 100644 --- a/frontend/farm_designer/util.ts +++ b/frontend/farm_designer/util.ts @@ -15,7 +15,7 @@ interface IdURL { } const FALLBACK: OpenFarm.Included[] = []; -export let OFSearch = (searchTerm: string) => +export const OFSearch = (searchTerm: string) => (dispatch: Function) => { dispatch({ type: Actions.OF_SEARCH_RESULTS_START, payload: undefined }); openFarmSearchQuery(searchTerm) diff --git a/frontend/farmware/reducer.ts b/frontend/farmware/reducer.ts index b406d4b4f..0597fa058 100644 --- a/frontend/farmware/reducer.ts +++ b/frontend/farmware/reducer.ts @@ -3,14 +3,14 @@ import { FarmwareState } from "./interfaces"; import { TaggedResource } from "farmbot"; import { Actions } from "../constants"; -export let farmwareState: FarmwareState = { +export const farmwareState: FarmwareState = { currentFarmware: undefined, currentImage: undefined, firstPartyFarmwareNames: [], infoOpen: false, }; -export let farmwareReducer = generateReducer(farmwareState) +export const farmwareReducer = generateReducer(farmwareState) .add(Actions.INIT_RESOURCE, (s, { payload }) => { if (payload.kind === "Image") { s.currentImage = payload.uuid; diff --git a/frontend/farmware/weed_detector/selectors.ts b/frontend/farmware/weed_detector/selectors.ts index 9527d473f..a8811d880 100644 --- a/frontend/farmware/weed_detector/selectors.ts +++ b/frontend/farmware/weed_detector/selectors.ts @@ -5,14 +5,14 @@ import { envGet } from "./remote_env/selectors"; /** Convert values like SPECIAL_VALUES.TRUE to drop down items with friendly * label/value pairs. */ -export let translateSpecialValue = (input: number): DropDownItem => { +export const translateSpecialValue = (input: number): DropDownItem => { return SPECIAL_VALUE_DDI[input] || NULL_CHOICE; }; /** Generates a lookup function to convert WeedDetector ENV items to * DropDownItems. Used to display currently selected options within dropdown * menus. */ -export let getDropdownSelection = (env: Partial) => +export const getDropdownSelection = (env: Partial) => (key: keyof WD_ENV): DropDownItem => { return translateSpecialValue(envGet(key, env)); }; diff --git a/frontend/help/reducer.ts b/frontend/help/reducer.ts index ad4b09783..9753694b7 100644 --- a/frontend/help/reducer.ts +++ b/frontend/help/reducer.ts @@ -5,11 +5,11 @@ export interface HelpState { currentTour: string | undefined; } -export let initialState: HelpState = { +export const initialState: HelpState = { currentTour: undefined, }; -export let helpReducer = generateReducer(initialState) +export const helpReducer = generateReducer(initialState) .add(Actions.START_TOUR, (s, { payload }) => { s.currentTour = payload; return s; diff --git a/frontend/interceptor_support.ts b/frontend/interceptor_support.ts index bff449f6a..0a3ff7848 100644 --- a/frontend/interceptor_support.ts +++ b/frontend/interceptor_support.ts @@ -2,13 +2,13 @@ import { DataChangeType, Dictionary } from "farmbot/dist"; import { box } from "boxed_value"; import { isNumber, isNaN } from "lodash"; -export let METHOD_MAP: Dictionary = { +export const METHOD_MAP: Dictionary = { "post": "add", "put": "update", "patch": "update", "delete": "remove" }; -export let METHODS = ["post", "put", "patch", "delete"]; +export const METHODS = ["post", "put", "patch", "delete"]; /** More nasty hacks until we have time to implement proper API push state * notifications. */ diff --git a/frontend/nav/mobile_menu.tsx b/frontend/nav/mobile_menu.tsx index e99691cb2..c7b33686f 100644 --- a/frontend/nav/mobile_menu.tsx +++ b/frontend/nav/mobile_menu.tsx @@ -5,7 +5,7 @@ import { MobileMenuProps } from "./interfaces"; const classes = [Classes.CARD, Classes.ELEVATION_4, "mobile-menu"]; -export let MobileMenu = (props: MobileMenuProps) => { +export const MobileMenu = (props: MobileMenuProps) => { const isActive = props.mobileMenuOpen ? "active" : "inactive"; const { alertCount } = props; return
diff --git a/frontend/nav/ticker_list.tsx b/frontend/nav/ticker_list.tsx index 15a44f563..92ea996d2 100644 --- a/frontend/nav/ticker_list.tsx +++ b/frontend/nav/ticker_list.tsx @@ -72,7 +72,7 @@ const Ticker = (log: TaggedLog, timeSettings: TimeSettings) => { }; /** The logs ticker, with closed/open views, and a link to the Logs page. */ -export let TickerList = (props: TickerListProps) => { +export const TickerList = (props: TickerListProps) => { return
diff --git a/frontend/open_farm/icons.ts b/frontend/open_farm/icons.ts index a41eeabbc..c79f93549 100644 --- a/frontend/open_farm/icons.ts +++ b/frontend/open_farm/icons.ts @@ -21,7 +21,7 @@ export interface OFCropResponse { } export namespace OpenFarmAPI { - export let OFBaseURL = BASE; + export const OFBaseURL = BASE; } export function svgToUrl(xml: string | undefined): string { diff --git a/frontend/redux/middlewares.ts b/frontend/redux/middlewares.ts index 954ff3baa..aeb2d7ee1 100644 --- a/frontend/redux/middlewares.ts +++ b/frontend/redux/middlewares.ts @@ -20,7 +20,7 @@ export interface MiddlewareConfig { fn: MW; env: EnvName; } /** To make it easier to manage all things watching the state tree, * we keep subscriber functions in this array. */ -export let mwConfig: MiddlewareConfig[] = [ +export const mwConfig: MiddlewareConfig[] = [ { env: "*", fn: thunk }, { env: "development", fn: require("redux-immutable-state-invariant").default() }, stateFetchMiddlewareConfig, diff --git a/frontend/redux/root_reducer.ts b/frontend/redux/root_reducer.ts index c8daa805f..55c583302 100644 --- a/frontend/redux/root_reducer.ts +++ b/frontend/redux/root_reducer.ts @@ -17,7 +17,7 @@ const reducerRecord = { resources: resourceReducer, }; -export let reducers = combineReducers(reducerRecord); +export const reducers = combineReducers(reducerRecord); Object.keys(reducerRecord).map((x: keyof typeof reducerRecord) => { if (!reducerRecord[x]) { diff --git a/frontend/redux/store.ts b/frontend/redux/store.ts index 1f775436d..be0c81d85 100644 --- a/frontend/redux/store.ts +++ b/frontend/redux/store.ts @@ -6,10 +6,9 @@ import { getMiddleware } from "./middlewares"; import { set } from "lodash"; function dev(): Store { - store = createStore(rootReducer, + return createStore(rootReducer, maybeFetchOldState(), getMiddleware("development")); - return store; } function prod(): Store { @@ -26,7 +25,7 @@ export function configureStore() { return store2; } -export let store = configureStore(); +export const store = configureStore(); /** Tries to fetch previous state from `sessionStorage`. * Returns {} if nothing is found. Used mostly for hot reloading. */ diff --git a/frontend/redux/subscribers.ts b/frontend/redux/subscribers.ts index e155c5a34..bee3aad58 100644 --- a/frontend/redux/subscribers.ts +++ b/frontend/redux/subscribers.ts @@ -52,7 +52,7 @@ export interface Subscription { fn: (state: Everything) => void; env: EnvName; } /** To make it easier to manage all things watching the state tree, * we keep subscriber functions in this array. */ -export let subscriptions: Subscription[] = [{ env: "*", fn: unsavedCheck }]; +export const subscriptions: Subscription[] = [{ env: "*", fn: unsavedCheck }]; export function registerSubscribers(store: Store) { const ENV_LIST = [process.env.NODE_ENV, "*"]; diff --git a/frontend/refresh_token.ts b/frontend/refresh_token.ts index d27bb3c4a..44b972ca5 100644 --- a/frontend/refresh_token.ts +++ b/frontend/refresh_token.ts @@ -11,7 +11,7 @@ const ok = (x: AxiosResponse) => { /** Grab a new token from the API (won't extend token's exp. date). * Redirect to home page on failure. */ -export let maybeRefreshToken +export const maybeRefreshToken = (old: AuthState): Promise => { API.setBaseUrl(old.token.unencoded.iss); setToken(old); // Precaution: The Axios interceptors might not be set yet. diff --git a/frontend/regimens/reducer.ts b/frontend/regimens/reducer.ts index c7b394380..8802b9d17 100644 --- a/frontend/regimens/reducer.ts +++ b/frontend/regimens/reducer.ts @@ -36,9 +36,9 @@ function newState(): RegimenState { }; } -export let initialState: RegimenState = newState(); +export const initialState: RegimenState = newState(); -export let regimensReducer = generateReducer(initialState) +export const regimensReducer = generateReducer(initialState) .add(Actions.DESTROY_RESOURCE_OK, (s, { payload }) => { switch (payload.uuid) { case s.selectedSequenceUUID: diff --git a/frontend/resources/actions.ts b/frontend/resources/actions.ts index db06cffd5..9644f5387 100644 --- a/frontend/resources/actions.ts +++ b/frontend/resources/actions.ts @@ -33,6 +33,6 @@ export const generalizedError = (payload: GeneralizedError) => { return { type: Actions._RESOURCE_NO, payload }; }; -export let destroyNO = generalizedError; -export let createNO = generalizedError; -export let updateNO = generalizedError; +export const destroyNO = generalizedError; +export const createNO = generalizedError; +export const updateNO = generalizedError; diff --git a/frontend/resources/selectors.ts b/frontend/resources/selectors.ts index d56807fe2..64c651eb5 100644 --- a/frontend/resources/selectors.ts +++ b/frontend/resources/selectors.ts @@ -40,7 +40,7 @@ export * from "./selectors_for_indexing"; * unless there is actually a reason for the resource to not have a UUID. * `findId()` is more appropriate 99% of the time because it can spot * referential integrity issues. */ -export let maybeDetermineUuid = +export const maybeDetermineUuid = (index: ResourceIndex, kind: ResourceName, id: number) => { const kni = joinKindAndId(kind, id); const uuid = index.byKindAndId[kni]; @@ -50,7 +50,7 @@ export let maybeDetermineUuid = } }; -export let findId = (index: ResourceIndex, kind: ResourceName, id: number): UUID => { +export const findId = (index: ResourceIndex, kind: ResourceName, id: number): UUID => { const uuid = maybeDetermineUuid(index, kind, id); if (uuid) { return uuid; @@ -59,7 +59,7 @@ export let findId = (index: ResourceIndex, kind: ResourceName, id: number): UUID } }; -export let isKind = (name: ResourceName) => (tr: TaggedResource) => tr.kind === name; +export const isKind = (name: ResourceName) => (tr: TaggedResource) => tr.kind === name; export function groupPointsByType(index: ResourceIndex) { return chain(selectAllActivePoints(index)) @@ -151,7 +151,7 @@ export function getSequenceByUUID(index: ResourceIndex, /** GIVEN: a slot UUID. * FINDS: Tool in that slot (if any) */ -export let currentToolInSlot = (index: ResourceIndex) => +export const currentToolInSlot = (index: ResourceIndex) => (toolSlotUUID: string): TaggedTool | undefined => { const currentSlot = selectCurrentToolSlot(index, toolSlotUUID); if (currentSlot diff --git a/frontend/resources/selectors_by_id.ts b/frontend/resources/selectors_by_id.ts index 94cf95b59..73833d409 100644 --- a/frontend/resources/selectors_by_id.ts +++ b/frontend/resources/selectors_by_id.ts @@ -31,7 +31,7 @@ export const findAllById = return output; }; -export let byId = +export const byId = (name: T["kind"]) => (index: ResourceIndex, id: number): T | undefined => { const resources = findAll(index, name); @@ -40,7 +40,7 @@ export let byId = return resources.filter(f)[0] as T | undefined; }; -export let findFarmEventById = (ri: ResourceIndex, fe_id: number) => { +export const findFarmEventById = (ri: ResourceIndex, fe_id: number) => { const fe = byId("FarmEvent")(ri, fe_id); if (fe && isTaggedFarmEvent(fe) && sanityCheck(fe)) { return fe; @@ -50,7 +50,7 @@ export let findFarmEventById = (ri: ResourceIndex, fe_id: number) => { } }; -export let maybeFindToolById = (ri: ResourceIndex, tool_id?: number): +export const maybeFindToolById = (ri: ResourceIndex, tool_id?: number): TaggedTool | undefined => { const tool = tool_id && byId("Tool")(ri, tool_id); if (tool && isTaggedTool(tool) && sanityCheck(tool)) { @@ -60,7 +60,7 @@ export let maybeFindToolById = (ri: ResourceIndex, tool_id?: number): } }; -export let findToolById = (ri: ResourceIndex, tool_id: number) => { +export const findToolById = (ri: ResourceIndex, tool_id: number) => { const tool = maybeFindToolById(ri, tool_id); if (tool) { return tool; @@ -69,7 +69,7 @@ export let findToolById = (ri: ResourceIndex, tool_id: number) => { } }; -export let findSequenceById = (ri: ResourceIndex, sequence_id: number) => { +export const findSequenceById = (ri: ResourceIndex, sequence_id: number) => { const sequence = byId("Sequence")(ri, sequence_id); if (sequence && isTaggedSequence(sequence) && sanityCheck(sequence)) { return sequence; @@ -78,9 +78,9 @@ export let findSequenceById = (ri: ResourceIndex, sequence_id: number) => { } }; -export let findSlotById = byId("Point"); +export const findSlotById = byId("Point"); /** Find a Tool's corresponding Slot. */ -export let findSlotByToolId = (index: ResourceIndex, tool_id: number) => { +export const findSlotByToolId = (index: ResourceIndex, tool_id: number) => { const tool = findToolById(index, tool_id); const query = { body: { tool_id: tool.body.id } }; const every = Object @@ -122,7 +122,7 @@ export function maybeFindSavedGardenById(index: ResourceIndex, id: number) { if (resource && isTaggedSavedGarden(resource)) { return resource; } } -export let findRegimenById = (ri: ResourceIndex, regimen_id: number) => { +export const findRegimenById = (ri: ResourceIndex, regimen_id: number) => { const regimen = byId("Regimen")(ri, regimen_id); if (regimen && isTaggedRegimen(regimen) && sanityCheck(regimen)) { return regimen; diff --git a/frontend/resources/selectors_by_kind.ts b/frontend/resources/selectors_by_kind.ts index 45a13a3c1..eddffb753 100644 --- a/frontend/resources/selectors_by_kind.ts +++ b/frontend/resources/selectors_by_kind.ts @@ -54,13 +54,13 @@ const uuidFinder = (r: T["kind"]) => } }; -export let findTool = uuidFinder("Tool"); -export let findSequence = uuidFinder("Sequence"); -export let findRegimen = uuidFinder("Regimen"); -export let findFarmEvent = uuidFinder("FarmEvent"); -export let findPoints = uuidFinder("Point"); -export let findPointGroup = uuidFinder("Point"); -export let findSavedGarden = uuidFinder("SavedGarden"); +export const findTool = uuidFinder("Tool"); +export const findSequence = uuidFinder("Sequence"); +export const findRegimen = uuidFinder("Regimen"); +export const findFarmEvent = uuidFinder("FarmEvent"); +export const findPoints = uuidFinder("Point"); +export const findPointGroup = uuidFinder("Point"); +export const findSavedGarden = uuidFinder("SavedGarden"); export const selectAllCrops = (i: ResourceIndex) => findAll(i, "Crop"); diff --git a/frontend/resources/tagged_resources.ts b/frontend/resources/tagged_resources.ts index 949421226..efa47f5f6 100644 --- a/frontend/resources/tagged_resources.ts +++ b/frontend/resources/tagged_resources.ts @@ -79,29 +79,29 @@ function isTaggedPoint(x: {}): x is PointerType { return (is("Point")(x)) && (x.kind === "Point"); } -export let isTaggedRegimen = +export const isTaggedRegimen = (x: object): x is TaggedRegimen => is("Regimen")(x); -export let isTaggedFolder = +export const isTaggedFolder = (x: object): x is TaggedRegimen => is("Folder")(x); -export let isTaggedSequence = +export const isTaggedSequence = (x: object): x is TaggedSequence => is("Sequence")(x); -export let isTaggedTool = +export const isTaggedTool = (x: object): x is TaggedTool => is("Tool")(x); -export let isTaggedFarmEvent = +export const isTaggedFarmEvent = (x: object): x is TaggedFarmEvent => is("FarmEvent")(x); -export let isTaggedToolSlotPointer = +export const isTaggedToolSlotPointer = (x: object): x is TaggedToolSlotPointer => { return isTaggedPoint(x) && (x.body.pointer_type === "ToolSlot"); }; -export let isTaggedPlantPointer = +export const isTaggedPlantPointer = (x: object): x is TaggedPlantPointer => { return isTaggedPoint(x) && (x.body.pointer_type === "Plant"); }; -export let isTaggedGenericPointer = +export const isTaggedGenericPointer = (x: object): x is TaggedGenericPointer => { return isTaggedPoint(x) && (x.body.pointer_type === "GenericPointer"); }; -export let isTaggedSavedGarden = +export const isTaggedSavedGarden = (x: object): x is TaggedSavedGarden => is("SavedGarden")(x); -export let isTaggedPlantTemplate = +export const isTaggedPlantTemplate = (x: object): x is TaggedPlantTemplate => is("PlantTemplate")(x); diff --git a/frontend/sequences/reducer.ts b/frontend/sequences/reducer.ts index a5416cdcf..1c3f775fc 100644 --- a/frontend/sequences/reducer.ts +++ b/frontend/sequences/reducer.ts @@ -9,7 +9,7 @@ export const initialState: SequenceReducerState = { stepIndex: undefined, }; -export let sequenceReducer = generateReducer(initialState) +export const sequenceReducer = generateReducer(initialState) .add(Actions.DESTROY_RESOURCE_OK, (s, { payload }) => { switch (payload.uuid) { case s.current: diff --git a/frontend/sequences/step_tiles/tile_if/index.tsx b/frontend/sequences/step_tiles/tile_if/index.tsx index 87a04ab2d..393abb6d0 100644 --- a/frontend/sequences/step_tiles/tile_if/index.tsx +++ b/frontend/sequences/step_tiles/tile_if/index.tsx @@ -118,7 +118,7 @@ export function InnerIf(props: IfParams) { /** Creates a function that can be used in the `onChange` event of a _else or * _then block in the sequence editor. */ -export let IfBlockDropDownHandler = (props: ThenElseParams) => { +export const IfBlockDropDownHandler = (props: ThenElseParams) => { const { dispatch, index, thenElseKey } = props; const step = props.currentStep; diff --git a/frontend/ui/expandable_header.tsx b/frontend/ui/expandable_header.tsx index b4e3d41f1..e78055692 100644 --- a/frontend/ui/expandable_header.tsx +++ b/frontend/ui/expandable_header.tsx @@ -7,7 +7,7 @@ interface Props { expanded: boolean; } -export let ExpandableHeader = (props: Props) => { +export const ExpandableHeader = (props: Props) => { const { onClick, title, expanded } = props; const icon_string = expanded ? "minus" : "plus"; const nbwhitespace = title != ""; diff --git a/frontend/util/util.ts b/frontend/util/util.ts index f40311922..45ae09d9f 100644 --- a/frontend/util/util.ts +++ b/frontend/util/util.ts @@ -18,7 +18,7 @@ import { } from "lodash"; import { t } from "../i18next_wrapper"; -export let colors: Array = [ +export const colors: Array = [ "blue", "green", "yellow",