index.tsx 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import React from 'react';
  2. import { Route, Switch } from 'react-router';
  3. import styled from 'styled-components';
  4. import { RouteProps as AppMainRouteProps } from '@polkadot/apps-routing/types';
  5. import { I18nProps } from '@polkadot/react-components/types';
  6. import style from './style';
  7. import translate from './translate';
  8. import { ForumProvider } from './Context';
  9. import { ForumSudoProvider } from './ForumSudo';
  10. import { NewSubcategory, NewCategory, EditCategory } from './EditCategory';
  11. import { NewThread, EditThread } from './EditThread';
  12. import { CategoryList, ViewCategoryById } from './CategoryList';
  13. import { ViewThreadById } from './ViewThread';
  14. import { LegacyPagingRedirect } from './LegacyPagingRedirect';
  15. import ForumRoot from './ForumRoot';
  16. const ForumMain = styled.main`${style}`;
  17. type Props = AppMainRouteProps & I18nProps;
  18. class App extends React.PureComponent<Props> {
  19. render () {
  20. const { basePath } = this.props;
  21. return (
  22. <ForumProvider>
  23. <ForumSudoProvider>
  24. <ForumMain className='forum--App'>
  25. <Switch>
  26. <Route path={`${basePath}/categories/new`} component={NewCategory} />
  27. {/* routes for handling legacy format of forum paging within the routing path */}
  28. {/* translate page param to search query */}
  29. <Route path={`${basePath}/categories/:id/page/:page`} component={LegacyPagingRedirect} />
  30. <Route path={`${basePath}/threads/:id/page/:page`} component={LegacyPagingRedirect} />
  31. {/* <Route path={`${basePath}/sudo`} component={EditForumSudo} /> */}
  32. <Route path={`${basePath}/categories/:id/newSubcategory`} component={NewSubcategory} />
  33. <Route path={`${basePath}/categories/:id/newThread`} component={NewThread} />
  34. <Route path={`${basePath}/categories/:id/edit`} component={EditCategory} />
  35. <Route path={`${basePath}/categories/:id`} component={ViewCategoryById} />
  36. <Route path={`${basePath}/categories`} component={CategoryList} />
  37. <Route path={`${basePath}/threads/:id/edit`} component={EditThread} />
  38. <Route path={`${basePath}/threads/:id`} component={ViewThreadById} />
  39. <Route component={ForumRoot} />
  40. </Switch>
  41. </ForumMain>
  42. </ForumSudoProvider>
  43. </ForumProvider>
  44. );
  45. }
  46. }
  47. export default translate(App);