{"version":3,"sources":["components/logo.png","store/WeatherForecasts.ts","store/HomeStore.tsx","store/index.ts","store/Counter.ts","components/NavMenu.tsx","components/Layout.tsx","components/ModalComponent.tsx","components/ModalWithTextTrigger.tsx","components/InputReadonlyWithCopy.tsx","components/Home.tsx","components/Counter.tsx","components/FetchData.tsx","App.tsx","registerServiceWorker.ts","index.tsx","store/configureStore.ts"],"names":["module","exports","actionCreators","requestWeatherForecasts","startDateIndex","dispatch","getState","appState","weatherForecasts","fetch","then","response","json","data","type","forecasts","unloadedState","isLoading","getApiInfo","apiInfo","addresses","totalStaked","reducers","counter","state","incomingAction","undefined","count","action","NavMenu","windowWidth","window","innerWidth","handleWindowSizeChange","setState","addEventListener","this","removeEventListener","Navbar","className","light","Container","Row","Col","xs","src","logo","style","width","NavbarBrand","padding","tag","Link","to","margin","textAlign","React","props","children","ModalComponent","toggle","modalState","modalTitle","modalContent","Modal","isOpen","ModalHeader","ModalBody","href","ModalFooter","Button","color","onClick","PureComponent","ModalWithButtonTrigger","buttonStyleClass","text","content","modalButtonText","useState","setModal","textDecoration","InputReadonlyWithCopy","address","show","setShow","inputRef","useRef","InputGroup","borderRadius","marginLeft","readOnly","ref","fontSize","value","InputGroupAddon","addonType","e","current","select","document","execCommand","setTimeout","fontFamily","background","Alert","Home","ensureDataFetched","numberOfLeases","forEach","element","toFixed","marginBottom","Card","CardHeader","CardBody","CardText","display","justifyContent","alignItems","size","border","boxShadow","ModalWithTextTrigger","CardTitle","getTotalStaked","getTotalLeases","paddingTop","float","marginTop","paddingLeft","connect","HomeStore","Counter","aria-live","increment","decrement","FetchData","id","renderForecastsTable","renderPagination","parseInt","match","params","aria-labelledby","map","forecast","key","date","temperatureC","temperatureF","summary","prevStartDateIndex","nextStartDateIndex","WeatherForecastsStore","Layout","exact","path","component","isLocalhost","Boolean","location","hostname","registerValidSW","swUrl","navigator","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","console","log","catch","error","baseUrl","getElementsByTagName","getAttribute","history","createBrowserHistory","basename","store","initialState","middleware","thunk","routerMiddleware","rootReducer","combineReducers","router","connectRouter","enhancers","windowIfDefined","__REDUX_DEVTOOLS_EXTENSION__","push","createStore","compose","applyMiddleware","configureStore","ReactDOM","App","height","getElementById","URL","process","toString","origin","contentType","headers","get","status","indexOf","ready","unregister","reload","checkValidServiceWorker","registerServiceWorker"],"mappings":"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","file":"static/js/main.726c40c9.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/logo.da31a3e2.png\";","import { Action, Reducer } from 'redux';\r\nimport { AppThunkAction } from './';\r\n\r\n// -----------------\r\n// STATE - This defines the type of data maintained in the Redux store.\r\n\r\nexport interface WeatherForecastsState {\r\n isLoading: boolean;\r\n startDateIndex?: number;\r\n forecasts: WeatherForecast[];\r\n}\r\n\r\nexport interface WeatherForecast {\r\n date: string;\r\n temperatureC: number;\r\n temperatureF: number;\r\n summary: string;\r\n}\r\n\r\n// -----------------\r\n// ACTIONS - These are serializable (hence replayable) descriptions of state transitions.\r\n// They do not themselves have any side-effects; they just describe something that is going to happen.\r\n\r\ninterface RequestWeatherForecastsAction {\r\n type: 'REQUEST_WEATHER_FORECASTS';\r\n startDateIndex: number;\r\n}\r\n\r\ninterface ReceiveWeatherForecastsAction {\r\n type: 'RECEIVE_WEATHER_FORECASTS';\r\n startDateIndex: number;\r\n forecasts: WeatherForecast[];\r\n}\r\n\r\n// Declare a 'discriminated union' type. This guarantees that all references to 'type' properties contain one of the\r\n// declared type strings (and not any other arbitrary string).\r\ntype KnownAction = RequestWeatherForecastsAction | ReceiveWeatherForecastsAction;\r\n\r\n// ----------------\r\n// ACTION CREATORS - These are functions exposed to UI components that will trigger a state transition.\r\n// They don't directly mutate state, but they can have external side-effects (such as loading data).\r\n\r\nexport const actionCreators = {\r\n requestWeatherForecasts: (startDateIndex: number): AppThunkAction => (dispatch, getState) => {\r\n // Only load data if it's something we don't already have (and are not already loading)\r\n const appState = getState();\r\n if (appState && appState.weatherForecasts && startDateIndex !== appState.weatherForecasts.startDateIndex) {\r\n fetch(`weatherforecast`)\r\n .then(response => response.json() as Promise)\r\n .then(data => {\r\n dispatch({ type: 'RECEIVE_WEATHER_FORECASTS', startDateIndex: startDateIndex, forecasts: data });\r\n });\r\n\r\n dispatch({ type: 'REQUEST_WEATHER_FORECASTS', startDateIndex: startDateIndex });\r\n }\r\n }\r\n};\r\n\r\n// ----------------\r\n// REDUCER - For a given state and action, returns the new state. To support time travel, this must not mutate the old state.\r\n\r\nconst unloadedState: WeatherForecastsState = { forecasts: [], isLoading: false };\r\n\r\nexport const reducer: Reducer = (state: WeatherForecastsState | undefined, incomingAction: Action): WeatherForecastsState => {\r\n if (state === undefined) {\r\n return unloadedState;\r\n }\r\n\r\n const action = incomingAction as KnownAction;\r\n switch (action.type) {\r\n case 'REQUEST_WEATHER_FORECASTS':\r\n return {\r\n startDateIndex: action.startDateIndex,\r\n forecasts: state.forecasts,\r\n isLoading: true\r\n };\r\n case 'RECEIVE_WEATHER_FORECASTS':\r\n // Only accept the incoming data if it matches the most recent request. This ensures we correctly\r\n // handle out-of-order responses.\r\n if (action.startDateIndex === state.startDateIndex) {\r\n return {\r\n startDateIndex: action.startDateIndex,\r\n forecasts: action.forecasts,\r\n isLoading: false\r\n };\r\n }\r\n break;\r\n }\r\n\r\n return state;\r\n};\r\n","import { Action, Reducer } from \"redux\";\r\nimport { AppThunkAction } from \"./\";\r\n\r\nexport interface ApiInfo{\r\n addresses: Address[];\r\n totalStaked: number;\r\n}\r\n\r\nexport interface Address{\r\n type: number;\r\n id: string;\r\n sender: string;\r\n senderPublicKey: string;\r\n fee: number;\r\n timestamp: number;\r\n proofs: string[];\r\n version: number;\r\n amount: number;\r\n recipient: string;\r\n height: number;\r\n}\r\n\r\nexport interface ApiInfoState {\r\n apiInfo: ApiInfo | { addresses: Address[], totalStaked: 0 };\r\n isLoading: boolean;\r\n}\r\n\r\nexport interface GetApiInfoAction {\r\n type: \"GET_API_INFO\";\r\n apiInfo: ApiInfo;\r\n}\r\n\r\nexport interface RetrievingApiInfoAction{\r\n type: \"RETRIEVING_API_INFO\"\r\n}\r\n\r\nexport type KnownAction =\r\n | GetApiInfoAction\r\n | RetrievingApiInfoAction;\r\n\r\nexport const actionCreators = {\r\n getApiInfo: (): AppThunkAction => (dispatch, getState) => {\r\n fetch(`/api/info`)\r\n .then(response => response.json() as Promise)\r\n .then(data => {\r\n dispatch({\r\n type: \"GET_API_INFO\",\r\n apiInfo: data\r\n });\r\n });\r\n dispatch({\r\n type: \"RETRIEVING_API_INFO\"\r\n });\r\n }\r\n}\r\n\r\nconst unloadedState: ApiInfoState = {\r\n apiInfo: { addresses: [], totalStaked: 0 },\r\n isLoading: false\r\n};\r\n\r\nexport const reducer: Reducer = (\r\n state: ApiInfoState | undefined,\r\n incomingAction: Action\r\n): ApiInfoState => {\r\n if(state === undefined){\r\n return unloadedState;\r\n }\r\n\r\n const action = incomingAction as KnownAction;\r\n switch(action.type){\r\n case \"GET_API_INFO\":\r\n return {\r\n apiInfo: action.apiInfo,\r\n isLoading: false\r\n };\r\n case \"RETRIEVING_API_INFO\":\r\n return {\r\n apiInfo: state.apiInfo,\r\n isLoading: true\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import * as WeatherForecasts from './WeatherForecasts';\r\nimport * as Counter from './Counter';\r\nimport * as Home from './HomeStore';\r\n\r\n// The top-level state object\r\nexport interface ApplicationState {\r\n counter: Counter.CounterState | undefined;\r\n weatherForecasts: WeatherForecasts.WeatherForecastsState | undefined;\r\n apiInfo: Home.ApiInfoState | undefined;\r\n}\r\n\r\n// Whenever an action is dispatched, Redux will update each top-level application state property using\r\n// the reducer with the matching name. It's important that the names match exactly, and that the reducer\r\n// acts on the corresponding ApplicationState property type.\r\nexport const reducers = {\r\n counter: Counter.reducer,\r\n weatherForecasts: WeatherForecasts.reducer,\r\n apiInfo: Home.reducer\r\n};\r\n\r\n// This type can be used as a hint on action creators so that its 'dispatch' and 'getState' params are\r\n// correctly typed to match your store.\r\nexport interface AppThunkAction {\r\n (dispatch: (action: TAction) => void, getState: () => ApplicationState): void;\r\n}\r\n","import { Action, Reducer } from 'redux';\r\n\r\n// -----------------\r\n// STATE - This defines the type of data maintained in the Redux store.\r\n\r\nexport interface CounterState {\r\n count: number;\r\n}\r\n\r\n// -----------------\r\n// ACTIONS - These are serializable (hence replayable) descriptions of state transitions.\r\n// They do not themselves have any side-effects; they just describe something that is going to happen.\r\n// Use @typeName and isActionType for type detection that works even after serialization/deserialization.\r\n\r\nexport interface IncrementCountAction { type: 'INCREMENT_COUNT' }\r\nexport interface DecrementCountAction { type: 'DECREMENT_COUNT' }\r\n\r\n// Declare a 'discriminated union' type. This guarantees that all references to 'type' properties contain one of the\r\n// declared type strings (and not any other arbitrary string).\r\nexport type KnownAction = IncrementCountAction | DecrementCountAction;\r\n\r\n// ----------------\r\n// ACTION CREATORS - These are functions exposed to UI components that will trigger a state transition.\r\n// They don't directly mutate state, but they can have external side-effects (such as loading data).\r\n\r\nexport const actionCreators = {\r\n increment: () => ({ type: 'INCREMENT_COUNT' } as IncrementCountAction),\r\n decrement: () => ({ type: 'DECREMENT_COUNT' } as DecrementCountAction)\r\n};\r\n\r\n// ----------------\r\n// REDUCER - For a given state and action, returns the new state. To support time travel, this must not mutate the old state.\r\n\r\nexport const reducer: Reducer = (state: CounterState | undefined, incomingAction: Action): CounterState => {\r\n if (state === undefined) {\r\n return { count: 0 };\r\n }\r\n\r\n const action = incomingAction as KnownAction;\r\n switch (action.type) {\r\n case 'INCREMENT_COUNT':\r\n return { count: state.count + 1 };\r\n case 'DECREMENT_COUNT':\r\n return { count: state.count - 1 };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import * as React from 'react';\r\nimport { Collapse, Container, Navbar, NavbarBrand, NavbarToggler, NavItem, NavLink, Row, Col } from 'reactstrap';\r\nimport { Link } from 'react-router-dom';\r\nimport './NavMenu.css';\r\nimport logo from './logo.png';\r\n\r\nexport default class NavMenu extends React.PureComponent<{}, { windowWidth: number }> {\r\n public state = {\r\n windowWidth: window.innerWidth\r\n };\r\n\r\n componentDidMount() {\r\n window.addEventListener('resize', this.handleWindowSizeChange);\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener('resize', this.handleWindowSizeChange);\r\n }\r\n\r\n handleWindowSizeChange = () => {\r\n this.setState({ windowWidth: window.innerWidth });\r\n };\r\n\r\n public render() {\r\n const { windowWidth } = this.state;\r\n const isMobile = windowWidth <= 500;\r\n if(isMobile){\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Knights' Bay $LTO Leasing\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n Knights' Bay $LTO Leasing\r\n \r\n \r\n \r\n
\r\n );\r\n \r\n }\r\n}\r\n","import * as React from 'react';\r\nimport { Container, Row, Col } from 'reactstrap';\r\nimport NavMenu from './NavMenu';\r\n\r\nexport default (props: { children?: React.ReactNode }) => (\r\n \r\n \r\n \r\n {props.children}\r\n \r\n \r\n);\r\n","import React, { PureComponent } from \"react\";\r\nimport { ModalBody, ModalHeader, Modal, Button, ModalFooter } from \"reactstrap\";\r\n\r\ninterface Props {\r\n toggle: any; // Maybe type this to a function?\r\n modalState: any; // Maybe type this to some interface later.\r\n modalContent: any; // Want to keep as any to allow more than just text.\r\n modalTitle: any;\r\n modalButtonText: any;\r\n}\r\n\r\nexport default class ModalComponent extends PureComponent {\r\n render() {\r\n const { toggle, modalState, modalContent, modalTitle } = this.props;\r\n return (\r\n
\r\n \r\n {modalTitle}\r\n \r\n
    \r\n
  1. Create a wallet on the LTO Mainnet - https://wallet.lto.network/
  2. \r\n
  3. Aquire $LTO (on ex. Binance.com)
  4. \r\n
  5. Send the $LTO to your LTO Mainnet wallet or swap $LTO from ERC20 exchanges/wallets using the bridge (instructions found under \"Bridge\" tab when logged in on the mainnet wallet).
  6. \r\n
  7. In your mainnet wallet, click the leasing tab
  8. \r\n
  9. Choose \"Knights' Bay Leasing\" in the dropdown list
  10. \r\n
  11. Select amount to lease and click done
  12. \r\n
\r\n You're all set! Now just wait for your rewards!\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React, { FunctionComponent, useState } from \"react\";\r\nimport { Button } from \"reactstrap\";\r\nimport Modalcomponent from \"./ModalComponent\";\r\n\r\ninterface Props {\r\n buttonStyleClass?: string;\r\n text: string;\r\n content: any;\r\n modalButtonText: any;\r\n modalTitle: any;\r\n}\r\n\r\nconst ModalWithButtonTrigger: FunctionComponent = ({\r\n buttonStyleClass,\r\n text,\r\n content,\r\n modalButtonText,\r\n modalTitle\r\n}: Props) => {\r\n const [modalState, setModal] = useState(false);\r\n const toggle = () => setModal(!modalState);\r\n return (\r\n
\r\n {text} \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ModalWithButtonTrigger;\r\n","import React, { FunctionComponent, useState, useRef, createRef } from \"react\";\r\nimport Modalcomponent from \"./ModalComponent\";\r\nimport { Button, InputGroup, Input, InputGroupAddon, Alert} from 'reactstrap';\r\n\r\n\r\ninterface Props {\r\n address: string\r\n}\r\n\r\nconst InputReadonlyWithCopy: FunctionComponent = ({\r\n address\r\n}: Props) => {\r\n const [show, setShow] = useState(false);\r\n const inputRef = useRef();\r\n\r\n const copyToClipboard = function(e: any){\r\n inputRef.current.select();\r\n document.execCommand('copy');\r\n // e.target.focus();\r\n setShow(true);\r\n window.setTimeout(()=>{\r\n setShow(false);\r\n }, 3000);\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Copied!\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default InputReadonlyWithCopy;\r\n","import * as React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { Card, CardImg, CardText, CardBody, CardTitle, CardHeader, CardSubtitle, Button, Container, Row, Col, InputGroup, Input, InputGroupAddon, InputGroupText } from 'reactstrap';\r\nimport { RouteComponentProps } from 'react-router';\r\nimport { ApplicationState } from \"../store\";\r\nimport * as HomeStore from \"../store/HomeStore\";\r\nimport { number } from 'prop-types';\r\nimport ModalWithTextTrigger from './ModalWithTextTrigger';\r\nimport InputReadonlyWithCopy from './InputReadonlyWithCopy';\r\nimport '../styles/Home.css';\r\n// import ltonetworktransfer from './ltonetworktransfer.png';\r\n\r\ntype HomeProps = HomeStore.ApiInfoState & typeof HomeStore.actionCreators & RouteComponentProps<{}>;\r\ntype HomeState = { windowWidth: number }\r\nclass Home extends React.PureComponent {\r\n\r\n constructor(props: HomeProps){\r\n super(props);\r\n this.state = {\r\n windowWidth: window.innerWidth\r\n }\r\n }\r\n\r\n public componentDidMount(){\r\n window.addEventListener('resize', this.handleWindowSizeChange);\r\n this.ensureDataFetched();\r\n }\r\n\r\n private ensureDataFetched(){\r\n this.props.getApiInfo();\r\n }\r\n\r\n private getTotalLeases(){\r\n var apiInfo = this.props.apiInfo;\r\n var numberOfLeases = 0;\r\n if(apiInfo.addresses !== undefined){\r\n apiInfo.addresses.forEach(element => {\r\n numberOfLeases++;\r\n });\r\n }\r\n return numberOfLeases;\r\n }\r\n\r\n private getTotalStaked(){\r\n var apiInfo = this.props.apiInfo;\r\n return (apiInfo.totalStaked / 100000000).toFixed(2);\r\n }\r\n \r\n componentWillUnmount() {\r\n window.removeEventListener('resize', this.handleWindowSizeChange);\r\n }\r\n\r\n handleWindowSizeChange = () => {\r\n this.setState({ windowWidth: window.innerWidth });\r\n };\r\n\r\n\r\n\r\n public render(){\r\n const { windowWidth } = this.state;\r\n const isMobile = windowWidth <= 500;\r\n if(!isMobile){\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n What is $LTO Leasing?\r\n {/* */}\r\n \r\n If you are holding $LTO, there's an opportunity for you to earn more, with 0 risk.
\r\n Leasing on the LTO Network is a simpler way to take part in the Proof of Stake concept that the network uses.
\r\n For a blockchain to forge blocks, nodes are needed for validating transactions. The nodes forge blocks on the chain and get rewarded $LTO for their work.
You can lease your $LTO coins to our running node and get a good share of the $LTO rewards the node makes.
\r\n The rewards will be transferred to your wallet whenever a payout is made.\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n The Knights Bay Node\r\n {/* */}\r\n \r\n Statistics from our node\r\n \r\n \r\n \r\n % of Rewards Shared\r\n 98%\r\n \r\n \r\n \r\n \r\n Total $LTO Staked\r\n {this.getTotalStaked()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n # of Leasers\r\n {this.getTotalLeases()}\r\n \r\n \r\n \r\n \r\n Payout date\r\n Every Friday\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n We offer optional, automatic compounding!\r\n \r\n \r\n \r\n For your convenience, you can compound your weekly rewards, instead of having to re-lease them.
It's really easy to set up, and it's all handled through our automatic Telegram bot.
Join our telegram group for more info and if you have any questions!
\r\n\r\n \r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Lease to our node address\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n

How to start leasing:

\r\n
\r\n \r\n \r\n

1

\r\n \r\n \r\n Log into or create your LTO Mainnet wallet at https://wallet.lto.network/)\r\n
\r\n \r\n
\r\n \r\n \r\n

2

\r\n \r\n \r\n Aquire $LTO (via ex. binance.com)\r\n
\r\n \r\n
\r\n \r\n

3

\r\n Transfer the $LTO to your mainnet wallet (if through binance, make sure you withdraw to the LTO Network)\r\n
\r\n \r\n

4

\r\n Log into your mainnet wallet and click on the \"Leasing\" tab on the left\r\n
\r\n \r\n

5

\r\n Select \"Knights' Bay Leasing\" in the dropdown list or enter our node address (listed above)\r\n
\r\n \r\n

6

\r\n Select amount and click \"Start lease\".\r\n
\r\n \r\n

Done! Now relax and wait for your $LTO rewards to start coming in!

\r\n
\r\n
\r\n
\r\n );\r\n }\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n Lease to our node address\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Optional compounding\r\n \r\n \r\n All handled through our TG bot!
Join our telegram for more info:
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n What is $LTO Leasing?\r\n \r\n \r\n
    \r\n
  • \r\n Nodes forge blocks on the LTO Network blockchain for $LTO rewards\r\n
  • \r\n
  • \r\n Instead of running a node, you can lease to an existing node and get a share of the rewards!\r\n
  • \r\n
  • \r\n Leasing won't move your $LTO, 0 risk\r\n
  • \r\n
  • \r\n You can cancel a lease anytime\r\n
  • \r\n
  • \r\n Payouts transferred directly to your wallet\r\n
  • \r\n

    \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n The Knights Bay Node\r\n \r\n Information about our node\r\n \r\n \r\n \r\n % of Rewards Shared\r\n 98%\r\n \r\n \r\n \r\n \r\n \r\n \r\n Total $LTO Staked\r\n {this.getTotalStaked()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n # of Leasers\r\n {this.getTotalLeases()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Payout date\r\n Every Friday\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Lease to our node address\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\n\r\nexport default connect(\r\n (state: ApplicationState) => state.apiInfo,\r\n HomeStore.actionCreators\r\n)(Home as any);\r\n","import * as React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { RouteComponentProps } from 'react-router';\r\nimport { ApplicationState } from '../store';\r\nimport * as CounterStore from '../store/Counter';\r\n\r\ntype CounterProps =\r\n CounterStore.CounterState &\r\n typeof CounterStore.actionCreators &\r\n RouteComponentProps<{}>;\r\n\r\nclass Counter extends React.PureComponent {\r\n public render() {\r\n return (\r\n \r\n

Counter

\r\n\r\n

This is a simple example of a React component.

\r\n\r\n

Current count: {this.props.count}

\r\n\r\n \r\n
\r\n );\r\n }\r\n};\r\n\r\nexport default connect(\r\n (state: ApplicationState) => state.counter,\r\n CounterStore.actionCreators\r\n)(Counter);\r\n","import * as React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { RouteComponentProps } from 'react-router';\r\nimport { Link } from 'react-router-dom';\r\nimport { ApplicationState } from '../store';\r\nimport * as WeatherForecastsStore from '../store/WeatherForecasts';\r\n\r\n// At runtime, Redux will merge together...\r\ntype WeatherForecastProps =\r\n WeatherForecastsStore.WeatherForecastsState // ... state we've requested from the Redux store\r\n & typeof WeatherForecastsStore.actionCreators // ... plus action creators we've requested\r\n & RouteComponentProps<{ startDateIndex: string }>; // ... plus incoming routing parameters\r\n\r\n\r\nclass FetchData extends React.PureComponent {\r\n // This method is called when the component is first added to the document\r\n public componentDidMount() {\r\n this.ensureDataFetched();\r\n }\r\n\r\n // This method is called when the route parameters change\r\n public componentDidUpdate() {\r\n this.ensureDataFetched();\r\n }\r\n\r\n public render() {\r\n return (\r\n \r\n

Weather forecast

\r\n

This component demonstrates fetching data from the server and working with URL parameters.

\r\n {this.renderForecastsTable()}\r\n {this.renderPagination()}\r\n
\r\n );\r\n }\r\n\r\n private ensureDataFetched() {\r\n const startDateIndex = parseInt(this.props.match.params.startDateIndex, 10) || 0;\r\n this.props.requestWeatherForecasts(startDateIndex);\r\n }\r\n\r\n private renderForecastsTable() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.props.forecasts.map((forecast: WeatherForecastsStore.WeatherForecast) =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
DateTemp. (C)Temp. (F)Summary
{forecast.date}{forecast.temperatureC}{forecast.temperatureF}{forecast.summary}
\r\n );\r\n }\r\n\r\n private renderPagination() {\r\n const prevStartDateIndex = (this.props.startDateIndex || 0) - 5;\r\n const nextStartDateIndex = (this.props.startDateIndex || 0) + 5;\r\n\r\n return (\r\n
\r\n Previous\r\n {this.props.isLoading && Loading...}\r\n Next\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default connect(\r\n (state: ApplicationState) => state.weatherForecasts, // Selects which state properties are merged into the component's props\r\n WeatherForecastsStore.actionCreators // Selects which action creators are merged into the component's props\r\n)(FetchData as any);\r\n","import * as React from 'react';\r\nimport { Route } from 'react-router';\r\nimport Layout from './components/Layout';\r\nimport Home from './components/Home';\r\nimport Counter from './components/Counter';\r\nimport FetchData from './components/FetchData';\r\n\r\nimport './custom.css'\r\n\r\nexport default () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport default function register() {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const url = process.env.PUBLIC_URL as string;\r\n const publicUrl = new URL(url, window.location.toString());\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Lets check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl);\r\n } else {\r\n // Is not local host. Just register service worker\r\n registerValidSW(swUrl);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl: string) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing as ServiceWorker;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n console.log('New content is available; please refresh.');\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl: string) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (response.status === 404 || (contentType && contentType.indexOf('javascript') === -1)) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl);\r\n }\r\n })\r\n .catch(() => {\r\n console.log('No internet connection found. App is running in offline mode.');\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import 'bootstrap/dist/css/bootstrap.css';\r\n\r\nimport * as React from 'react';\r\nimport * as ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport { ConnectedRouter } from 'connected-react-router';\r\nimport { createBrowserHistory } from 'history';\r\nimport configureStore from './store/configureStore';\r\nimport App from './App';\r\nimport registerServiceWorker from './registerServiceWorker';\r\nimport { Container, Row, Col } from 'reactstrap';\r\n\r\n// Create browser history to use in the Redux store\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href') as string;\r\nconst history = createBrowserHistory({ basename: baseUrl });\r\n\r\n// Get the application-wide store instance, prepopulating with state from the server where available.\r\nconst store = configureStore(history);\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n
©Knights' Bay Leasing
\r\n
\r\n
,\r\n document.getElementById('root'));\r\n\r\nregisterServiceWorker();\r\n","import { applyMiddleware, combineReducers, compose, createStore } from 'redux';\r\nimport thunk from 'redux-thunk';\r\nimport { connectRouter, routerMiddleware } from 'connected-react-router';\r\nimport { History } from 'history';\r\nimport { ApplicationState, reducers } from './';\r\n\r\nexport default function configureStore(history: History, initialState?: ApplicationState) {\r\n const middleware = [\r\n thunk,\r\n routerMiddleware(history)\r\n ];\r\n\r\n const rootReducer = combineReducers({\r\n ...reducers,\r\n router: connectRouter(history)\r\n });\r\n\r\n const enhancers = [];\r\n const windowIfDefined = typeof window === 'undefined' ? null : window as any;\r\n if (windowIfDefined && windowIfDefined.__REDUX_DEVTOOLS_EXTENSION__) {\r\n enhancers.push(windowIfDefined.__REDUX_DEVTOOLS_EXTENSION__());\r\n }\r\n\r\n return createStore(\r\n rootReducer,\r\n initialState,\r\n compose(applyMiddleware(...middleware), ...enhancers)\r\n );\r\n}\r\n"],"sourceRoot":""}