diff options
Diffstat (limited to 'sdnr/wt/odlux/apps/demoApp/src/plugin.tsx')
-rw-r--r-- | sdnr/wt/odlux/apps/demoApp/src/plugin.tsx | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/sdnr/wt/odlux/apps/demoApp/src/plugin.tsx b/sdnr/wt/odlux/apps/demoApp/src/plugin.tsx new file mode 100644 index 000000000..f450275c2 --- /dev/null +++ b/sdnr/wt/odlux/apps/demoApp/src/plugin.tsx @@ -0,0 +1,37 @@ +import * as React from "react"; +import { withRouter, RouteComponentProps, Route, Switch, Redirect } from 'react-router-dom'; + +import { faAddressBook, faRegistered } from '@fortawesome/free-solid-svg-icons'; + +import applicationManager from '../../../framework/src/services/applicationManager'; +import connect, { Connect } from '../../../framework/src/flux/connect'; + +import { demoAppRootHandler } from './handlers/demoAppRootHandler'; + +import AuthorsList from './views/authorsList'; +import EditAuthor from './views/editAuthor'; + +import { Counter } from './components/counter'; + +type AppProps = RouteComponentProps & Connect; + +const App = (props: AppProps) => ( + <Switch> + <Route exact path={ `${ props.match.path }/authors` } component={AuthorsList} /> + <Route path={ `${ props.match.path }/authors/:authorId` } component={EditAuthor } /> + <Redirect to={ `${ props.match.path }/authors` } /> + </Switch> +); + +const FinalApp = withRouter(connect()(App)); + +export function register() { + const applicationApi = applicationManager.registerApplication({ + name: "demoApp", + icon: faAddressBook, + rootComponent: FinalApp, + rootActionHandler: demoAppRootHandler, + exportedComponents: { counter: Counter }, + menuEntry: "Demo App" + }); +} |