From 19ffb0b64370e2907b09ec7be32bac4378dd7be8 Mon Sep 17 00:00:00 2001
From: Austin Alvarez
-
- ReacType Change Log
-
+ +
- -
- -![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) -![TypeScript](https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge&logo=typescript&logoColor=white) -![NodeJS](https://img.shields.io/badge/node.js-6DA55F?style=for-the-badge&logo=node.js&logoColor=white) -![Express.js](https://img.shields.io/badge/express.js-%23404d59.svg?style=for-the-badge&logo=express&logoColor=%2361DAFB) -![React](https://img.shields.io/badge/react-%2320232a.svg?style=for-the-badge&logo=react&logoColor=%2361DAFB) -![Redux](https://img.shields.io/badge/redux-%23593d88.svg?style=for-the-badge&logo=redux&logoColor=white) -![Socket.io](https://img.shields.io/badge/Socket.io-black?style=for-the-badge&logo=socket.io&badgeColor=010101) -![Jest](https://img.shields.io/badge/-jest-%23C21325?style=for-the-badge&logo=jest&logoColor=white) -![Babel](https://img.shields.io/badge/Babel-F9DC3e?style=for-the-badge&logo=babel&logoColor=black) -![Git](https://img.shields.io/badge/git-%23F05033.svg?style=for-the-badge&logo=git&logoColor=white) -![MUI](https://img.shields.io/badge/MUI-%230081CB.svg?style=for-the-badge&logo=mui&logoColor=white) -![Electron.js](https://img.shields.io/badge/Electron-191970?style=for-the-badge&logo=Electron&logoColor=white) -![MongoDB](https://img.shields.io/badge/MongoDB-%234ea94b.svg?style=for-the-badge&logo=mongodb&logoColor=white) -![AWS](https://img.shields.io/badge/AWS-%23FF9900.svg?style=for-the-badge&logo=amazon-aws&logoColor=white) -![Docker](https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge&logo=docker&logoColor=white) -![Vite](https://img.shields.io/badge/Vite-orange?logo=vite&style=for-the-badge) - -- -
- -Visit [reactype.dev](https://reactype.dev) to learn more about the product. - -Follow [@ReacType](https://twitter.com/reactype) on Twitter for important announcements. - -## Changes with Version 20.0.0 - -- **Collaboration Rooms**: Official launch of v2 collaboration rooms - Now featuring a secure live collaborative chat room with video and cursor tracking functionality! -- **UI Updates**: The UI now features a new logo, zoom and scroll functionality to the canvas, and numerous updates to styling to reflect a more modern and user friendly experience. -- **DX Updates**: Migrated from WebPack to Vite, drastically reducing HMR time. Now deployed via Heroku instead of AWS. -- **Typescript Conversion**: Typescript coverage is at 95%. -- **Cleanup**: Removed unused code, fixed bugs, and made major performance improvements. -- **And more:** See the [change log](https://github.com/open-source-labs/ReacType/blob/master/CHANGE_LOG.md) for more details on what was changed from the previous versions, as well as plans for upcoming features! - -- -
- -## Preview - -Get a glimpse of how ReacType works! - -- -
- - - -## File Structure of ReacType Version 20.0.0 - -Here is the main file structure: - -- -
- -Given to us courtesy of our friends over at React Relay - -## Run ReacType using CLI - -- **Fork** and **Clone** Repository. -- Open the project directory. -- Install dependencies. - -```bash -npm install -``` - -- To run the production build - -```bash -npm run prod -``` - -- To run tests - -```bash -npm run test -``` - -- To run the development build - -```bash -npm run dev -``` - -- Note that DEV_PORT, NODE_ENV flag (=production or development) and VIDEOSDK token are needed in the .env file. -- Please note that the development build is not connected to the production server. `npm run dev` should spin up the development server from the server folder of this repo. For additional information, the readme is [here](https://github.com/open-source-labs/ReacType/blob/master/server/README.md). Alternatively, you can select "Continue as guest" on the login page of the app, which will not use any features that rely on the server (authentication and saving project data.) - -- To run the development build of electron app - -```bash -npm run dev -npm run electron-dev -``` - -## Run Exported App - -- Open exported project directory -- Install dependencies - -```bash -npm install -``` - -- Build the app - -```bash -npm run build -``` - -- Start an instance - -```bash -npm run start -``` - -- Open browser and navigate to localhost at specified port - -## Stack - -Typescript, React.js, Redux Toolkit, Javascript, ESM, Node.js (Express), HTML, CSS, MUI, GraphQL, Next.js, Gatsby.js, Electron, NoSQL, Webpack, TDD (Jest, React Testing Library, Playwright), OAuth 2.0, Websocket, SocketIO, Continuous Integration (Github Actions), Docker, AWS (ECR, Elastic Beanstalk), Ace Editor, Google Charts, React DnD, Vite - -## Contributions - -Here is the up to date [list](https://github.com/open-source-labs/ReacType/blob/master/contributors.md) of all co-developers of this product. - -## License - -This project is licensed under the MIT License - see the [LICENSE.md](https://github.com/team-reactype/ReacType/blob/development/LICENSE.md) file for details. - -[stars]: https://img.shields.io/github/stars/open-source-labs/ReacType -[stars-url]: https://github.com/open-source-labs/ReacType/stargazers -[forks]: https://img.shields.io/github/forks/open-source-labs/ReacType -[forks-url]: https://github.com/open-source-labs/ReacType/network/members -[contributors]: https://img.shields.io/github/contributors/open-source-labs/ReacType -[contributors-url]: https://github.com/open-source-labs/ReacType/graphs/contributors + + + + + + + ++ +
+ +![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) +![TypeScript](https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge&logo=typescript&logoColor=white) +![NodeJS](https://img.shields.io/badge/node.js-6DA55F?style=for-the-badge&logo=node.js&logoColor=white) +![Express.js](https://img.shields.io/badge/express.js-%23404d59.svg?style=for-the-badge&logo=express&logoColor=%2361DAFB) +![React](https://img.shields.io/badge/react-%2320232a.svg?style=for-the-badge&logo=react&logoColor=%2361DAFB) +![Redux](https://img.shields.io/badge/redux-%23593d88.svg?style=for-the-badge&logo=redux&logoColor=white) +![Socket.io](https://img.shields.io/badge/Socket.io-black?style=for-the-badge&logo=socket.io&badgeColor=010101) +![Jest](https://img.shields.io/badge/-jest-%23C21325?style=for-the-badge&logo=jest&logoColor=white) +![Babel](https://img.shields.io/badge/Babel-F9DC3e?style=for-the-badge&logo=babel&logoColor=black) +![Git](https://img.shields.io/badge/git-%23F05033.svg?style=for-the-badge&logo=git&logoColor=white) +![MUI](https://img.shields.io/badge/MUI-%230081CB.svg?style=for-the-badge&logo=mui&logoColor=white) +![Electron.js](https://img.shields.io/badge/Electron-191970?style=for-the-badge&logo=Electron&logoColor=white) +![MongoDB](https://img.shields.io/badge/MongoDB-%234ea94b.svg?style=for-the-badge&logo=mongodb&logoColor=white) +![AWS](https://img.shields.io/badge/AWS-%23FF9900.svg?style=for-the-badge&logo=amazon-aws&logoColor=white) +![Docker](https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge&logo=docker&logoColor=white) +![Vite](https://img.shields.io/badge/Vite-orange?logo=vite&style=for-the-badge) + ++ +
+ +Visit [reactype.dev](https://reactype.dev) to learn more about the product. + +Follow [@ReacType](https://twitter.com/reactype) on Twitter for important announcements. + +## Changes with Version 20.0.0 + +- **Collaboration Rooms**: Official launch of v2 collaboration rooms - Now featuring a secure live collaborative chat room with video and cursor tracking functionality! +- **UI Updates**: The UI now features a new logo, zoom and scroll functionality to the canvas, and numerous updates to styling to reflect a more modern and user friendly experience. +- **DX Updates**: Migrated from WebPack to Vite, drastically reducing HMR time. Now deployed via Heroku instead of AWS. +- **Typescript Conversion**: Typescript coverage is at 95%. +- **Cleanup**: Removed unused code, fixed bugs, and made major performance improvements. +- **And more:** See the [change log](https://github.com/open-source-labs/ReacType/blob/master/CHANGE_LOG.md) for more details on what was changed from the previous versions, as well as plans for upcoming features! + ++ +
+ +## Preview + +Get a glimpse of how ReacType works! + ++ +
+ + + +## File Structure of ReacType Version 20.0.0 + +Here is the main file structure: + ++ +
+ +Given to us courtesy of our friends over at React Relay + +## Run ReacType using CLI + +- **Fork** and **Clone** Repository. +- Open the project directory. +- Install dependencies. + +```bash +npm install +``` + +- To run the production build + +```bash +npm run prod +``` + +- To run tests + +```bash +npm run test +``` + +- To run the development build + +```bash +npm run dev +``` + +- Note that DEV_PORT, NODE_ENV flag (=production or development) and VIDEOSDK token are needed in the .env file. +- Please note that the development build is not connected to the production server. `npm run dev` should spin up the development server from the server folder of this repo. For additional information, the readme is [here](https://github.com/open-source-labs/ReacType/blob/master/server/README.md). Alternatively, you can select "Continue as guest" on the login page of the app, which will not use any features that rely on the server (authentication and saving project data.) + +- To run the development build of electron app + +```bash +npm run dev +npm run electron-dev +``` + +## Run Exported App + +- Open exported project directory +- Install dependencies + +```bash +npm install +``` + +- Build the app + +```bash +npm run build +``` + +- Start an instance + +```bash +npm run start +``` + +- Open browser and navigate to localhost at specified port + +## Stack + +Typescript, React.js, Redux Toolkit, Javascript, ESM, Node.js (Express), HTML, CSS, MUI, GraphQL, Next.js, Gatsby.js, Electron, NoSQL, Webpack, TDD (Jest, React Testing Library, Playwright), OAuth 2.0, Websocket, SocketIO, Continuous Integration (Github Actions), Docker, AWS (ECR, Elastic Beanstalk), Ace Editor, Google Charts, React DnD, Vite + +## Contributions + +Here is the up to date [list](https://github.com/open-source-labs/ReacType/blob/master/contributors.md) of all co-developers of this product. + +## License + +This project is licensed under the MIT License - see the [LICENSE.md](https://github.com/team-reactype/ReacType/blob/development/LICENSE.md) file for details. + +[stars]: https://img.shields.io/github/stars/open-source-labs/ReacType +[stars-url]: https://github.com/open-source-labs/ReacType/stargazers +[forks]: https://img.shields.io/github/forks/open-source-labs/ReacType +[forks-url]: https://github.com/open-source-labs/ReacType/network/members +[contributors]: https://img.shields.io/github/contributors/open-source-labs/ReacType +[contributors-url]: https://github.com/open-source-labs/ReacType/graphs/contributors diff --git a/__tests__/BottomTabs.test.tsx b/__tests__/BottomTabs.test.tsx index e7d55068e..31145f71d 100644 --- a/__tests__/BottomTabs.test.tsx +++ b/__tests__/BottomTabs.test.tsx @@ -1,233 +1,233 @@ -import '@testing-library/jest-dom'; - -import { - fireEvent, - render, - screen, - waitFor, - within -} from '@testing-library/react'; - -import BottomTabs from '../app/src/components/bottom/BottomTabs'; -import { BrowserRouter } from 'react-router-dom'; -import ComponentPanel from '../app/src/components/right/ComponentPanel'; -import ContextManager from '../app/src/components/ContextAPIManager/ContextManager'; -import CustomizationPanel from '../app/src/containers/CustomizationPanel'; -import { DndProvider } from 'react-dnd'; -import DragDropPanel from '../app/src/components/left/DragDropPanel'; -import { HTML5Backend } from 'react-dnd-html5-backend'; -import HTMLPanel from '../app/src/components/left/HTMLPanel'; -import MainContainer from '../app/src/containers/MainContainer'; -import { Provider } from 'react-redux'; -import React from 'react'; -import StateManager from '../app/src/components/StateManagement/StateManagement'; -import store from '../app/src/redux/store'; - -describe('Bottom Panel Render Test', () => { - test('should render all six tabs', () => { - render( -- {reversedCommentArray[i].username}: - {reversedCommentArray[i].text} -
- ); - } - } - // Closes out the open modal - const closeModal = () => setModal(''); - // Creates modal that asks if user wants to delete project - const deleteProjectModal = () => { - //Deletes project from the database - const handleDelete = (e) => { - e.preventDefault(); - const myVar = { - variables: { - projId: id - } - }; - deleteProject(myVar); - }; - // Set modal options - const children = ( -+ {reversedCommentArray[i].username}: + {reversedCommentArray[i].text} +
+ ); + } + } + // Closes out the open modal + const closeModal = () => setModal(''); + // Creates modal that asks if user wants to delete project + const deleteProjectModal = () => { + //Deletes project from the database + const handleDelete = (e) => { + e.preventDefault(); + const myVar = { + variables: { + projId: id + } + }; + deleteProject(myVar); + }; + // Set modal options + const children = ( +Loading...
; - if (error) returnError :{error}
; - // based on resolver(getAllProject) for this query, the data is stored in the data object with the key 'getAllProjects' - const projects = data.getAllProjects; - - //create array to hold the data recieved in the public dashboard the will be conditionally rendered - let sortedProjects = projects.filter(proj => { - return proj.published; - }); - const userProjects = projects.filter(proj => { - return proj.username === username; - }); - // checking which sorting method was selected from drop down menu and invoking correct sorting function - if (selectedOption === 'DATE') sortedProjects = sortByDate(sortedProjects); - else if (selectedOption === 'USER') - sortedProjects = sortByUser(sortedProjects); - else if (selectedOption === 'RATING') - sortedProjects = sortByRating(sortedProjects); - // create array to hold the components Project of loggin-in users - // generate an array of Project components based on queried data - const userDisplay = arrToComponent(userProjects); - // create an array of components Project that will be conditionally rendered - const sortedDisplay = arrToComponent(sortedProjects); - // old code from Project Container - return ( -Loading...
; + if (error) returnError :{error}
; + // based on resolver(getAllProject) for this query, the data is stored in the data object with the key 'getAllProjects' + const projects = data.getAllProjects; + + //create array to hold the data recieved in the public dashboard the will be conditionally rendered + let sortedProjects = projects.filter(proj => { + return proj.published; + }); + const userProjects = projects.filter(proj => { + return proj.username === username; + }); + // checking which sorting method was selected from drop down menu and invoking correct sorting function + if (selectedOption === 'DATE') sortedProjects = sortByDate(sortedProjects); + else if (selectedOption === 'USER') + sortedProjects = sortByUser(sortedProjects); + else if (selectedOption === 'RATING') + sortedProjects = sortByRating(sortedProjects); + // create array to hold the components Project of loggin-in users + // generate an array of Project components based on queried data + const userDisplay = arrToComponent(userProjects); + // create an array of components Project that will be conditionally rendered + const sortedDisplay = arrToComponent(sortedProjects); + // old code from Project Container + return ( +- Please join a collaboration room to enable this function -
-+ Please join a collaboration room to enable this function +
+Joining the meeting...
} - {userJoinCollabRoom && userJoinMeetingStatus === null && ( - - )} -Joining the meeting...
} + {userJoinCollabRoom && userJoinMeetingStatus === null && ( + + )} +