From a131d298d517a95986598e211a0d191563999bdf Mon Sep 17 00:00:00 2001 From: pikqi Date: Fri, 24 Mar 2023 16:37:05 +0100 Subject: [PATCH 1/5] adds a new page with speakers --- package.json | 2 + pnpm-lock.yaml | 78 +++++++++++++++++++++++++++- src/app/App.css | 12 +++++ src/app/App.tsx | 69 ++++++++++++++++++------- src/app/SpeakersPage.tsx | 23 +++++++++ src/app/routes.tsx | 14 +++++ src/lib/services/speakerService.ts | 82 +++++++++++++++--------------- 7 files changed, 219 insertions(+), 61 deletions(-) create mode 100644 src/app/SpeakersPage.tsx create mode 100644 src/app/routes.tsx diff --git a/package.json b/package.json index edd6041..0dbfbe0 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,8 @@ "cheerio": "1.0.0-rc.12", "react": "experimental", "react-dom": "experimental", + "react-loader-spinner": "^5.3.4", + "react-router-dom": "^6.9.0", "rect-use": "^1.0.0" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fec9eb2..195927a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,6 +10,8 @@ specifiers: cheerio: 1.0.0-rc.12 react: experimental react-dom: experimental + react-loader-spinner: ^5.3.4 + react-router-dom: ^6.9.0 rect-use: ^1.0.0 typescript: ^4.9.3 vite: ^3.2.5 @@ -20,6 +22,8 @@ dependencies: cheerio: 1.0.0-rc.12 react: 0.0.0-experimental-9c54b29b4-20230322 react-dom: 0.0.0-experimental-9c54b29b4-20230322_ed6xpwya6oca3tppk6uilvo2my + react-loader-spinner: 5.3.4_tah32hmxhmi2g7goovfvj5m5ou + react-router-dom: 6.9.0_tah32hmxhmi2g7goovfvj5m5ou rect-use: 1.0.0_tah32hmxhmi2g7goovfvj5m5ou devDependencies: @@ -464,6 +468,11 @@ packages: tslib: 1.14.1 dev: false + /@remix-run/router/1.4.0: + resolution: {integrity: sha512-BJ9SxXux8zAg991UmT8slpwpsd31K1dHHbD3Ba4VzD+liLQ4WAMSxQp2d2ZPRPfN0jN2NPRowcSSoM7lCaF08Q==} + engines: {node: '>=14'} + dev: false + /@tanstack/query-core/4.27.0: resolution: {integrity: sha512-sm+QncWaPmM73IPwFlmWSKPqjdTXZeFf/7aEmWh00z7yl2FjqophPt0dE1EHW9P1giMC5rMviv7OUbSDmWzXXA==} dev: false @@ -587,7 +596,7 @@ packages: babel-plugin-syntax-jsx: 6.18.0 lodash: 4.17.21 picomatch: 2.3.1 - styled-components: 5.3.9_tah32hmxhmi2g7goovfvj5m5ou + styled-components: 5.3.9_yq6yrxxdqxx5g35vt2chfkqpai dev: false /babel-plugin-syntax-jsx/6.18.0: @@ -1291,11 +1300,51 @@ packages: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} dev: false + /react-is/18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + dev: false + + /react-loader-spinner/5.3.4_tah32hmxhmi2g7goovfvj5m5ou: + resolution: {integrity: sha512-G2vw4ssX+RDZ/vfaeva06yfNqyFViv/u+tVZ3kFLy5TKNlNx2DbuwreBSpRtPespQA+VxinxUJsigwLwG9erOg==} + peerDependencies: + react: ^16.0.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 0.0.0-experimental-9c54b29b4-20230322 + react-dom: 0.0.0-experimental-9c54b29b4-20230322_ed6xpwya6oca3tppk6uilvo2my + react-is: 18.2.0 + styled-components: 5.3.9_yq6yrxxdqxx5g35vt2chfkqpai + styled-tools: 1.7.2 + dev: false + /react-refresh/0.14.0: resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} engines: {node: '>=0.10.0'} dev: true + /react-router-dom/6.9.0_tah32hmxhmi2g7goovfvj5m5ou: + resolution: {integrity: sha512-/seUAPY01VAuwkGyVBPCn1OXfVbaWGGu4QN9uj0kCPcTyNYgL1ldZpxZUpRU7BLheKQI4Twtl/OW2nHRF1u26Q==} + engines: {node: '>=14'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + dependencies: + '@remix-run/router': 1.4.0 + react: 0.0.0-experimental-9c54b29b4-20230322 + react-dom: 0.0.0-experimental-9c54b29b4-20230322_ed6xpwya6oca3tppk6uilvo2my + react-router: 6.9.0_ed6xpwya6oca3tppk6uilvo2my + dev: false + + /react-router/6.9.0_ed6xpwya6oca3tppk6uilvo2my: + resolution: {integrity: sha512-51lKevGNUHrt6kLuX3e/ihrXoXCa9ixY/nVWRLlob4r/l0f45x3SzBvYJe3ctleLUQQ5fVa4RGgJOTH7D9Umhw==} + engines: {node: '>=14'} + peerDependencies: + react: '>=16.8' + dependencies: + '@remix-run/router': 1.4.0 + react: 0.0.0-experimental-9c54b29b4-20230322 + dev: false + /react/0.0.0-experimental-9c54b29b4-20230322: resolution: {integrity: sha512-aFi5dUOoDIxM1zVPbrwcltNii/ZEBJGj1ODqmq+RIPScX/Q7fpHnBHHoomJIfBxx9bhK13ygr1bDWmj0Q13V0Q==} engines: {node: '>=0.10.0'} @@ -1399,6 +1448,33 @@ packages: supports-color: 5.5.0 dev: false + /styled-components/5.3.9_yq6yrxxdqxx5g35vt2chfkqpai: + resolution: {integrity: sha512-Aj3kb13B75DQBo2oRwRa/APdB5rSmwUfN5exyarpX+x/tlM/rwZA2vVk2vQgVSP6WKaZJHWwiFrzgHt+CLtB4A==} + engines: {node: '>=10'} + peerDependencies: + react: '>= 16.8.0' + react-dom: '>= 16.8.0' + react-is: '>= 16.8.0' + dependencies: + '@babel/helper-module-imports': 7.18.6 + '@babel/traverse': 7.21.3_supports-color@5.5.0 + '@emotion/is-prop-valid': 1.2.0 + '@emotion/stylis': 0.8.5 + '@emotion/unitless': 0.7.5 + babel-plugin-styled-components: 2.0.7_styled-components@5.3.9 + css-to-react-native: 3.2.0 + hoist-non-react-statics: 3.3.2 + react: 0.0.0-experimental-9c54b29b4-20230322 + react-dom: 0.0.0-experimental-9c54b29b4-20230322_ed6xpwya6oca3tppk6uilvo2my + react-is: 18.2.0 + shallowequal: 1.1.0 + supports-color: 5.5.0 + dev: false + + /styled-tools/1.7.2: + resolution: {integrity: sha512-IjLxzM20RMwAsx8M1QoRlCG/Kmq8lKzCGyospjtSXt/BTIIcvgTonaxQAsKnBrsZNwhpHzO9ADx5te0h76ILVg==} + dev: false + /stylefire/7.0.3: resolution: {integrity: sha512-Q0l7NSeFz/OkX+o6/7Zg3VZxSAZeQzQpYomWmIpOehFM/rJNMSLVX5fgg6Q48ut2ETNKwdhm97mPNU643EBCoQ==} dependencies: diff --git a/src/app/App.css b/src/app/App.css index 2c5e2ef..c985096 100644 --- a/src/app/App.css +++ b/src/app/App.css @@ -39,3 +39,15 @@ .read-the-docs { color: #888; } + +.nav{ + + padding:20px; +} +.navItem{ + + margin:10px; + background-color: #444444; + border-radius: 10px; + padding:12px; +} diff --git a/src/app/App.tsx b/src/app/App.tsx index 089f557..88f5bd9 100644 --- a/src/app/App.tsx +++ b/src/app/App.tsx @@ -1,25 +1,56 @@ -import { Suspense } from 'react' +import { Suspense } from "react"; -import reactLogo from '../assets/react.svg' +import { createBrowserRouter, RouterProvider, Link } from "react-router-dom"; -import UsersPage from './users/UsersPage' -import './App.css' +import "./App.css"; +import UsersPage from "./users/UsersPage"; +import { Audio, Blocks } from "react-loader-spinner"; +import { SpeakersPage } from "./SpeakersPage"; +import Root from "./routes"; +import logo from "../assets/react.svg" -function App() { +const router = createBrowserRouter([ + { + path: "/", + element: , + children: [ + { + path: "/", + element: ( + loading...

}> + +
+ ), + }, + { + path: "/constantine/speakers", + element: ( + }> + + + ), + }, + ], + }, +]); - return ( -
-
- React logo -
- Loading…}> - - -

- React 18 use() hook showcase -

-
- ) +function App() { + return ( +
+
+ React logo +
+ +

React 18 use() hook showcase

+
+ ); } -export default App +export default App; diff --git a/src/app/SpeakersPage.tsx b/src/app/SpeakersPage.tsx new file mode 100644 index 0000000..90e43aa --- /dev/null +++ b/src/app/SpeakersPage.tsx @@ -0,0 +1,23 @@ +import { use } from "react"; + +import Title from "@/components/Title"; +import { speakerService, Speaker } from "@/lib/services/speakerService"; + + +export function SpeakersPage() { + const speakers = use(speakerService.fetchSpeakers()); + + console.log(speakers) + return ( + <> + Speakers +
+ {speakers.map((speaker) => ( +

{speaker.name} ({speaker.lecture})

+ ))} +
+ + ); +} + + diff --git a/src/app/routes.tsx b/src/app/routes.tsx new file mode 100644 index 0000000..c7e4a2a --- /dev/null +++ b/src/app/routes.tsx @@ -0,0 +1,14 @@ +import reactLogo from "../../assets/react.svg"; +import { Link, Outlet } from "react-router-dom"; + +export default function Root() { + return ( +
+ + +
+ ); +} diff --git a/src/lib/services/speakerService.ts b/src/lib/services/speakerService.ts index fca35c6..a0cec4a 100644 --- a/src/lib/services/speakerService.ts +++ b/src/lib/services/speakerService.ts @@ -4,52 +4,52 @@ import { load } from 'cheerio' import { CODESTANTINE_URL } from '@/config/constants' export type Speaker = { - id: string - name: string - lecture: string + id: string + name: string + lecture: string } class SpeakerService { - async fetchSpeakers(): Promise<{}[]> { - try { - // Go to the dev.to tags page - const response = await axios.get(CODESTANTINE_URL) - - // Get the HTML code of the webpage - const html = await response.data - const $ = load(html) - - // const speakers: Speaker[] = [] - - // Find all elements with crayons-tag class, find their innerText and add them to the tags array - const speakersTopicsArr = $('h3.elementor-heading-title') - .map(function () { - return $(this).text() - }) - .get() - - const speakers: any[] = [] - for (let index = 0; index < speakersTopicsArr.length; index++) { - const elem = speakersTopicsArr[index] - - let speaker: any = {} - const isName = index % 2 === 0 - - if (isName || index === 0) { - speaker.id = index - speaker.name = elem - speakers[index] = speaker - } else { - speaker = speakers[index - 1] - speaker.lecture = elem - } - } - - return speakers - } catch (error) { - throw error + async fetchSpeakers(): Promise<{}[]> { + try { + // Go to the dev.to tags page + const response = await axios.get(CODESTANTINE_URL) + + // Get the HTML code of the webpage + const html = await response.data + const $ = load(html) + + // const speakers: Speaker[] = [] + + // Find all elements with crayons-tag class, find their innerText and add them to the tags array + const speakersTopicsArr = $('h3.elementor-heading-title') + .map(function() { + return $(this).text() + }) + .get() + + const speakers: any[] = [] + for (let index = 0; index < speakersTopicsArr.length; index++) { + const elem = speakersTopicsArr[index] + + let speaker: any = {} + const isName = index % 2 === 0 + + if (isName || index === 0) { + speaker.id = index + speaker.name = elem + speakers[index] = speaker + } else { + speaker = speakers[index - 1] + speaker.lecture = elem } + } + + return speakers.filter(spk => !!spk); + } catch (error) { + throw error } + } } export const speakerService = new SpeakerService() From c37b57c309f9e71b11713fc5da8d85ed5a073e8e Mon Sep 17 00:00:00 2001 From: pikqi Date: Fri, 24 Mar 2023 23:45:11 +0100 Subject: [PATCH 2/5] Moves router to a seperate file --- src/app/App.tsx | 46 ++++--------------------------------------- src/app/AppRoutes.tsx | 46 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 42 deletions(-) create mode 100644 src/app/AppRoutes.tsx diff --git a/src/app/App.tsx b/src/app/App.tsx index 88f5bd9..0986a1b 100644 --- a/src/app/App.tsx +++ b/src/app/App.tsx @@ -1,45 +1,7 @@ -import { Suspense } from "react"; - -import { createBrowserRouter, RouterProvider, Link } from "react-router-dom"; - +import React from "react"; import "./App.css"; -import UsersPage from "./users/UsersPage"; -import { Audio, Blocks } from "react-loader-spinner"; -import { SpeakersPage } from "./SpeakersPage"; -import Root from "./routes"; -import logo from "../assets/react.svg" - -const router = createBrowserRouter([ - { - path: "/", - element: , - children: [ - { - path: "/", - element: ( - loading...

}> - -
- ), - }, - { - path: "/constantine/speakers", - element: ( - }> - - - ), - }, - ], - }, -]); +import logo from "../assets/react.svg"; +import { AppRoutes } from "./AppRoutes"; function App() { return ( @@ -47,7 +9,7 @@ function App() {
React logo
- +

React 18 use() hook showcase

); diff --git a/src/app/AppRoutes.tsx b/src/app/AppRoutes.tsx new file mode 100644 index 0000000..98f01ac --- /dev/null +++ b/src/app/AppRoutes.tsx @@ -0,0 +1,46 @@ +import React, { Suspense } from "react"; +import { Blocks } from "react-loader-spinner"; +import { createBrowserRouter, RouterProvider } from "react-router-dom"; +import Root from "./routes"; +import { SpeakersPage } from "./SpeakersPage"; +import UsersPage from "./users/UsersPage"; + +const router = createBrowserRouter([ + { + path: "/", + element: , + children: [ + { + path: "/", + element: ( + loading...

}> + +
+ ), + }, + { + path: "/constantine/speakers", + element: ( + + } + > + + + ), + }, + ], + }, +]); + +export const AppRoutes = () => { + return ; +}; From bb0611958539891573b46a940c95aa84c2b9cfb3 Mon Sep 17 00:00:00 2001 From: pikqi Date: Fri, 24 Mar 2023 23:51:00 +0100 Subject: [PATCH 3/5] Adds prettierrc and formats all files --- .prettierignore | 27 ++++++++++ .prettierrc.json | 6 +++ src/app/App.tsx | 28 +++++----- src/app/AppRoutes.tsx | 84 +++++++++++++++--------------- src/app/SpeakersPage.tsx | 35 ++++++------- src/app/routes.tsx | 26 +++++---- src/lib/services/speakerService.ts | 82 ++++++++++++++--------------- src/lib/services/userService.ts | 3 +- 8 files changed, 164 insertions(+), 127 deletions(-) create mode 100644 .prettierignore create mode 100644 .prettierrc.json diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..a26af3c --- /dev/null +++ b/.prettierignore @@ -0,0 +1,27 @@ +*.css +*.html + +pnpm-lock.yaml + +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000..e74ed9f --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,6 @@ +{ + "trailingComma": "es5", + "tabWidth": 4, + "semi": false, + "singleQuote": true +} diff --git a/src/app/App.tsx b/src/app/App.tsx index 0986a1b..4457a80 100644 --- a/src/app/App.tsx +++ b/src/app/App.tsx @@ -1,18 +1,18 @@ -import React from "react"; -import "./App.css"; -import logo from "../assets/react.svg"; -import { AppRoutes } from "./AppRoutes"; +import React from 'react' +import './App.css' +import logo from '../assets/react.svg' +import { AppRoutes } from './AppRoutes' function App() { - return ( -
-
- React logo -
- -

React 18 use() hook showcase

-
- ); + return ( +
+
+ React logo +
+ +

React 18 use() hook showcase

+
+ ) } -export default App; +export default App diff --git a/src/app/AppRoutes.tsx b/src/app/AppRoutes.tsx index 98f01ac..d7c8f16 100644 --- a/src/app/AppRoutes.tsx +++ b/src/app/AppRoutes.tsx @@ -1,46 +1,46 @@ -import React, { Suspense } from "react"; -import { Blocks } from "react-loader-spinner"; -import { createBrowserRouter, RouterProvider } from "react-router-dom"; -import Root from "./routes"; -import { SpeakersPage } from "./SpeakersPage"; -import UsersPage from "./users/UsersPage"; +import React, { Suspense } from 'react' +import { Blocks } from 'react-loader-spinner' +import { createBrowserRouter, RouterProvider } from 'react-router-dom' +import Root from './routes' +import { SpeakersPage } from './SpeakersPage' +import UsersPage from './users/UsersPage' const router = createBrowserRouter([ - { - path: "/", - element: , - children: [ - { - path: "/", - element: ( - loading...

}> - -
- ), - }, - { - path: "/constantine/speakers", - element: ( - - } - > - - - ), - }, - ], - }, -]); + { + path: '/', + element: , + children: [ + { + path: '/', + element: ( + loading...

}> + +
+ ), + }, + { + path: '/constantine/speakers', + element: ( + + } + > + + + ), + }, + ], + }, +]) export const AppRoutes = () => { - return ; -}; + return +} diff --git a/src/app/SpeakersPage.tsx b/src/app/SpeakersPage.tsx index 90e43aa..c7c07e4 100644 --- a/src/app/SpeakersPage.tsx +++ b/src/app/SpeakersPage.tsx @@ -1,23 +1,22 @@ -import { use } from "react"; - -import Title from "@/components/Title"; -import { speakerService, Speaker } from "@/lib/services/speakerService"; +import { use } from 'react' +import Title from '@/components/Title' +import { speakerService, Speaker } from '@/lib/services/speakerService' export function SpeakersPage() { - const speakers = use(speakerService.fetchSpeakers()); + const speakers = use(speakerService.fetchSpeakers()) - console.log(speakers) - return ( - <> - Speakers -
- {speakers.map((speaker) => ( -

{speaker.name} ({speaker.lecture})

- ))} -
- - ); + console.log(speakers) + return ( + <> + Speakers +
+ {speakers.map((speaker) => ( +

+ {speaker.name} ({speaker.lecture}) +

+ ))} +
+ + ) } - - diff --git a/src/app/routes.tsx b/src/app/routes.tsx index c7e4a2a..2080148 100644 --- a/src/app/routes.tsx +++ b/src/app/routes.tsx @@ -1,14 +1,18 @@ -import reactLogo from "../../assets/react.svg"; -import { Link, Outlet } from "react-router-dom"; +import reactLogo from '../../assets/react.svg' +import { Link, Outlet } from 'react-router-dom' export default function Root() { - return ( -
- - -
- ); + return ( +
+ + +
+ ) } diff --git a/src/lib/services/speakerService.ts b/src/lib/services/speakerService.ts index a0cec4a..312efdb 100644 --- a/src/lib/services/speakerService.ts +++ b/src/lib/services/speakerService.ts @@ -4,52 +4,52 @@ import { load } from 'cheerio' import { CODESTANTINE_URL } from '@/config/constants' export type Speaker = { - id: string - name: string - lecture: string + id: string + name: string + lecture: string } class SpeakerService { - async fetchSpeakers(): Promise<{}[]> { - try { - // Go to the dev.to tags page - const response = await axios.get(CODESTANTINE_URL) - - // Get the HTML code of the webpage - const html = await response.data - const $ = load(html) - - // const speakers: Speaker[] = [] - - // Find all elements with crayons-tag class, find their innerText and add them to the tags array - const speakersTopicsArr = $('h3.elementor-heading-title') - .map(function() { - return $(this).text() - }) - .get() - - const speakers: any[] = [] - for (let index = 0; index < speakersTopicsArr.length; index++) { - const elem = speakersTopicsArr[index] - - let speaker: any = {} - const isName = index % 2 === 0 - - if (isName || index === 0) { - speaker.id = index - speaker.name = elem - speakers[index] = speaker - } else { - speaker = speakers[index - 1] - speaker.lecture = elem + async fetchSpeakers(): Promise<{}[]> { + try { + // Go to the dev.to tags page + const response = await axios.get(CODESTANTINE_URL) + + // Get the HTML code of the webpage + const html = await response.data + const $ = load(html) + + // const speakers: Speaker[] = [] + + // Find all elements with crayons-tag class, find their innerText and add them to the tags array + const speakersTopicsArr = $('h3.elementor-heading-title') + .map(function () { + return $(this).text() + }) + .get() + + const speakers: any[] = [] + for (let index = 0; index < speakersTopicsArr.length; index++) { + const elem = speakersTopicsArr[index] + + let speaker: any = {} + const isName = index % 2 === 0 + + if (isName || index === 0) { + speaker.id = index + speaker.name = elem + speakers[index] = speaker + } else { + speaker = speakers[index - 1] + speaker.lecture = elem + } + } + + return speakers.filter((spk) => !!spk) + } catch (error) { + throw error } - } - - return speakers.filter(spk => !!spk); - } catch (error) { - throw error } - } } export const speakerService = new SpeakerService() diff --git a/src/lib/services/userService.ts b/src/lib/services/userService.ts index ea43d05..2a7b777 100644 --- a/src/lib/services/userService.ts +++ b/src/lib/services/userService.ts @@ -7,7 +7,8 @@ class UserService { singleUser: (id: number) => `/users/${id}`, } - private mapUsers = (usersArr: any[]) => usersArr.map((user: any) => new User(user)) + private mapUsers = (usersArr: any[]) => + usersArr.map((user: any) => new User(user)) private mapUser = (userData: any) => new User(userData) async fetchUsers() { From d8f4b5fc86d4d525f250d88299c219fd2c88c808 Mon Sep 17 00:00:00 2001 From: pikqi Date: Fri, 24 Mar 2023 23:55:23 +0100 Subject: [PATCH 4/5] Removes a console log --- src/app/SpeakersPage.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/app/SpeakersPage.tsx b/src/app/SpeakersPage.tsx index c7c07e4..be41e8b 100644 --- a/src/app/SpeakersPage.tsx +++ b/src/app/SpeakersPage.tsx @@ -6,7 +6,6 @@ import { speakerService, Speaker } from '@/lib/services/speakerService' export function SpeakersPage() { const speakers = use(speakerService.fetchSpeakers()) - console.log(speakers) return ( <> Speakers From 1e685fcf218f78e15e43211ca6564df032d951a0 Mon Sep 17 00:00:00 2001 From: pikqi Date: Sat, 25 Mar 2023 00:06:36 +0100 Subject: [PATCH 5/5] Prettiefies NavBar compoenent --- src/app/AppRoutes.tsx | 3 ++- src/app/{routes.tsx => NavBar.tsx} | 0 2 files changed, 2 insertions(+), 1 deletion(-) rename src/app/{routes.tsx => NavBar.tsx} (100%) diff --git a/src/app/AppRoutes.tsx b/src/app/AppRoutes.tsx index d7c8f16..299d8a9 100644 --- a/src/app/AppRoutes.tsx +++ b/src/app/AppRoutes.tsx @@ -1,6 +1,7 @@ import React, { Suspense } from 'react' import { Blocks } from 'react-loader-spinner' import { createBrowserRouter, RouterProvider } from 'react-router-dom' +import NavBar from './NavBar' import Root from './routes' import { SpeakersPage } from './SpeakersPage' import UsersPage from './users/UsersPage' @@ -8,7 +9,7 @@ import UsersPage from './users/UsersPage' const router = createBrowserRouter([ { path: '/', - element: , + element: , children: [ { path: '/', diff --git a/src/app/routes.tsx b/src/app/NavBar.tsx similarity index 100% rename from src/app/routes.tsx rename to src/app/NavBar.tsx