`
+- Continue developing your play. Happy coding.
+
## 👀 Submitting a Play for Review
+
After you done with coding for your `Play`, you can submit it for review. Submitting a `Play` for review is a two step process.
-- Create a Pull Request on the [react-play](https://github.com/reactplay/react-play) repository with your changes.
+- Create a Pull Request on the [react-play](https://github.com/reactplay/react-play) repository with your changes.
- Dedicate some time in a week to take care of the review comments.
Once the Pull Request is approved and merged, we will notify you and add you as a `Contributor` to the [react-play](https://github.com/reactplay/react-play) project.
@@ -76,8 +84,3 @@ Once the Pull Request is approved and merged, we will notify you and add you as
## ✋ Need Help?
You can reach out to us at [ReactPlay Twitter Handle | @ReactPlayIO](https://twitter.com/ReactPlayIO) with a DM. Additionally, feel free to open a [discussion](https://github.com/reactplay/react-play/discussions) or [issue](https://github.com/reactplay/react-play/issues) on the `react-play` repository.
-
-
-
-
-
diff --git a/README.md b/README.md
index 3b11aefe77..d2cb8fafe8 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,9 @@
# ReactPlay(Repo: `react-play`)
+
+
[](#contributors-)
+
@@ -45,7 +48,6 @@
-
## 👋 Introducing ReactPlay
@@ -55,11 +57,13 @@
`react-play` is an `open-source` web app that helps you learn ReactJS faster with a hands-on practice model. It is a collection of `ReactJS projects` that you can use to learn ReactJS.
Is that all? Nope. You can also create your projects and share them with the world. The best part is that the ReactJS experts will `review` your project code before it gets part of the `ReactPlay` app. Isn't that a pure WIN-WIN?
+
## 🔥 Demo
+
Here is the link to the app. We hope you enjoy it.
> [The ReactPlay app Link](https://reactplay.io)
-
+
Who doesn't want motivation and support? Many Thanks to all the Stargazers who have supported this project with stars(⭐). You all are amazing!!!
@@ -78,23 +82,26 @@ You may want to set up the `react-play` repo for the following reasons:
Here is a quick overview of the `react-play` repo setup:
-### 🍴 Fork and Clone the Repo
+### 🍴 Fork and Clone the Repo
+
First, you need to fork the `react-play` repo. You can do this by clicking the `Fork` button on the top right corner of the repo. If you are new to forking, please watch this [YouTube Guide](https://www.youtube.com/watch?v=h8suY-Osn8Q) to get started.
Once forked, you can clone the repo by clicking the `Clone or Download` button on the top right corner of the forked repo.
Please change the directory after cloning the repository using the `cd ` command.
->**Note:** Please do not remove the `.env.development` file from the root folder. It contains all the evironment variables required for development.
+> **Note:** Please do not remove the `.env.development` file from the root folder. It contains all the evironment variables required for development.
### ⬇️ Install Dependencies
+
Next, install the dependencies by running the following command in the `react-play` repo:
```bash
npm install
```
+
Or
-
+
```bash
yarn install
```
@@ -106,13 +113,15 @@ npm install --legacy-peer-deps
```
### 🦄 Start the Development Mode
+
Use the following command to start the app in the development mode:
```bash
npm start
```
+
Or
-
+
```bash
yarn start
```
@@ -122,13 +131,15 @@ It runs the app in development mode. Open [http://localhost:3000](http://localho
The page will reload when you make changes. You may also see any lint errors in the console.
### 🧱 Build the App for Production
+
Use the following command to build the app for production:
```bash
npm run build
```
+
Or
-
+
```bash
yarn build
```
@@ -165,6 +176,7 @@ You can deploy the app to `Vercel` or `Netlify` with a single click.
## 🤝 Contributing to `ReactPlay`
+
Any kind of positive contribution is welcome! Please help us to grow by contributing to the project.
If you wish to contribute, you can,
@@ -179,14 +191,15 @@ If you wish to contribute, you can,
> Please read [`CONTRIBUTING`](CONTRIBUTING.md) for details on our [`CODE OF CONDUCT`](CODE_OF_CONDUCT.md), and the process for submitting pull requests to us.
## Launching reactplay Rewards
- Contributed to reactplay? Here is a big thank you from our community to you.
- Claim your badge and showcase them with pride.
- Let us inspire more folks !
-
- 
-
- ### **[Claim Now!](https://aviyel.com/projects/43/reactplay/rewards)**
-
+
+Contributed to reactplay? Here is a big thank you from our community to you.
+Claim your badge and showcase them with pride.
+Let us inspire more folks !
+
+
+
+### **[Claim Now!](https://aviyel.com/projects/43/reactplay/rewards)**
+
## 🙏 Support
We all need support and motivation. `ReactPlay` is not an exception. Please give this project a ⭐️ to encourage and show that you liked it. Don't forget to leave a star ⭐️ before you move away.
@@ -203,9 +216,6 @@ If you found the app helpful, consider supporting us with a coffee.
A ⭐️ to ReactPlay is to make us more 💪 stronger and motivated.
-
-
-
## Contributors ✨
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
diff --git a/cypress.config.ts b/cypress.config.ts
index 35dbb7fce2..26e545d0df 100644
--- a/cypress.config.ts
+++ b/cypress.config.ts
@@ -1,11 +1,11 @@
-import { defineConfig } from "cypress";
+import { defineConfig } from 'cypress';
export default defineConfig({
e2e: {
setupNodeEvents(on, config) {
// implement node event listeners here
},
- baseUrl: "http://localhost:3000",
- watchForFileChanges: false,
- },
+ baseUrl: 'http://localhost:3000',
+ watchForFileChanges: false
+ }
});
diff --git a/cypress/e2e/homePage.cy.ts b/cypress/e2e/homePage.cy.ts
index 99a075d743..b892e5c11b 100644
--- a/cypress/e2e/homePage.cy.ts
+++ b/cypress/e2e/homePage.cy.ts
@@ -1,47 +1,44 @@
///
-import { CONTRIBUTORS_COUNT, TWEET_COUNT } from "../support/constant";
+import { CONTRIBUTORS_COUNT, TWEET_COUNT } from '../support/constant';
-describe("Test home page", () => {
+describe('Test home page', () => {
beforeEach(() => {
- cy.visit("/");
+ cy.visit('/');
});
- it("Header component should render properly", () => {
- cy.get('[data-testid="app-header"]').should("be.visible");
- cy.get('[data-testid="app-logo"]').should("be.visible");
- cy.get('[data-testid="plays-search-box-container"]').should("not.exist");
- cy.get('[data-testid="header-links-container"]').should("be.visible");
- cy.get('[data-testid="browse-btn"]').should("be.visible").as("browseBtn");
- cy.get('[data-testid="create-btn"]').should("be.visible");
- cy.get('[data-testid="ideas-btn"]').should("be.visible");
- cy.get('[data-testid="github-btn"]').should("be.visible");
- cy.get('[data-testid="twitter-btn"]').should("be.visible");
- cy.get('[data-testid="share-btn"]').should("be.visible");
+ it('Header component should render properly', () => {
+ cy.get('[data-testid="app-header"]').should('be.visible');
+ cy.get('[data-testid="app-logo"]').should('be.visible');
+ cy.get('[data-testid="plays-search-box-container"]').should('not.exist');
+ cy.get('[data-testid="header-links-container"]').should('be.visible');
+ cy.get('[data-testid="browse-btn"]').should('be.visible').as('browseBtn');
+ cy.get('[data-testid="create-btn"]').should('be.visible');
+ cy.get('[data-testid="ideas-btn"]').should('be.visible');
+ cy.get('[data-testid="github-btn"]').should('be.visible');
+ cy.get('[data-testid="twitter-btn"]').should('be.visible');
+ cy.get('[data-testid="share-btn"]').should('be.visible');
- cy.get("@browseBtn").click();
- cy.get('[data-testid="plays-search-box-container"]').should("be.visible");
+ cy.get('@browseBtn').click();
+ cy.get('[data-testid="plays-search-box-container"]').should('be.visible');
});
- it("Tweet section should render with all tweets", () => {
- cy.intercept("GET", "https://cdn.syndication.twimg.com/*").as("tweets");
- cy.wait("@tweets");
- cy.get('[data-testid="tweet-container"]')
- .scrollIntoView()
- .should("be.visible");
+ it('Tweet section should render with all tweets', () => {
+ cy.intercept('GET', 'https://cdn.syndication.twimg.com/*').as('tweets');
+ cy.wait('@tweets');
+ cy.get('[data-testid="tweet-container"]').scrollIntoView().should('be.visible');
cy.get('[data-testid="tweet-container"] [id*="twitter-widget"]').should(
- "have.length",
+ 'have.length',
TWEET_COUNT
);
- cy.get('[data-testid="watch-svg"]').should("not.exist");
+ cy.get('[data-testid="watch-svg"]').should('not.exist');
});
- it("Contributors section should render with all contributors", () => {
- cy.get('[data-testid="contributors-section"]')
- .scrollIntoView()
- .should("be.visible");
- cy.get(
- '[data-testid="contributors-section"] [data-testid*="contributor-"]'
- ).should("have.length", CONTRIBUTORS_COUNT);
+ it('Contributors section should render with all contributors', () => {
+ cy.get('[data-testid="contributors-section"]').scrollIntoView().should('be.visible');
+ cy.get('[data-testid="contributors-section"] [data-testid*="contributor-"]').should(
+ 'have.length',
+ CONTRIBUTORS_COUNT
+ );
});
});
diff --git a/cypress/support/commands.ts b/cypress/support/commands.ts
index 698b01a42c..95857aea4c 100644
--- a/cypress/support/commands.ts
+++ b/cypress/support/commands.ts
@@ -34,4 +34,4 @@
// visit(originalFn: CommandOriginalFn, url: string, options: Partial): Chainable
// }
// }
-// }
\ No newline at end of file
+// }
diff --git a/cypress/support/e2e.ts b/cypress/support/e2e.ts
index f80f74f8e1..598ab5f0d7 100644
--- a/cypress/support/e2e.ts
+++ b/cypress/support/e2e.ts
@@ -14,7 +14,7 @@
// ***********************************************************
// Import commands.js using ES2015 syntax:
-import './commands'
+import './commands';
// Alternatively you can use CommonJS syntax:
-// require('./commands')
\ No newline at end of file
+// require('./commands')
diff --git a/docker-compose-dev.yml b/docker-compose-dev.yml
index a255a3dc8f..ea6ff17e76 100644
--- a/docker-compose-dev.yml
+++ b/docker-compose-dev.yml
@@ -1,4 +1,4 @@
-version: "3.3"
+version: '3.3'
networks:
react-play-network:
@@ -17,6 +17,6 @@ services:
- ./:/usr/src/app
- /usr/src/app/node_modules
ports:
- - "3000:3000"
+ - '3000:3000'
networks:
- - react-play-network
\ No newline at end of file
+ - react-play-network
diff --git a/docker-compose-prod.yml b/docker-compose-prod.yml
index 40ef0bf3f5..0d1995e584 100644
--- a/docker-compose-prod.yml
+++ b/docker-compose-prod.yml
@@ -1,4 +1,4 @@
-version: "3.3"
+version: '3.3'
networks:
react-play-network:
@@ -13,6 +13,6 @@ services:
image: react-play-frontend-app-prod:v1
restart: always
ports:
- - "80:80"
+ - '80:80'
networks:
- react-play-network
diff --git a/package.json b/package.json
index 24d8f8b5be..c3dc7bd0a4 100644
--- a/package.json
+++ b/package.json
@@ -70,12 +70,11 @@
"snap": "react-snap",
"test": "react-scripts test",
"eject": "react-scripts eject",
- "prettier": "prettier --write \"**/*.+(js|jsx|ts|tsx|json|css|scss|md)\"",
- "lint": "eslint \"**/*.+(js|jsx|ts|tsx|json|css|scss|md)\"",
- "lint:fix": "eslint --fix \"**/*.+(js|jsx|ts|tsx|json|css|scss|md)\"",
- "format": "prettier --write \"**/*.+(js|jsx|ts|tsx|json|css|scss|md)\" --config ./.prettierrc",
"cypress:open": "cypress open",
- "cypress:run": "cypress run"
+ "cypress:run": "cypress run",
+ "lint": "eslint src/**/*.{js,jsx,ts,tsx,json}",
+ "lint:fix": "eslint --fix 'src/**/*.{js,jsx,ts,tsx,json}'",
+ "format": "prettier --write 'src/**/*.{js,jsx,ts,tsx,css,md,json}' --config ./.prettierrc"
},
"reactSnap": {
"puppeteerArgs": [
@@ -96,24 +95,25 @@
]
},
"devDependencies": {
- "@typescript-eslint/eslint-plugin": "^5.33.1",
- "@typescript-eslint/parser": "^5.33.1",
+ "@typescript-eslint/eslint-plugin": "^5.0.0",
+ "@typescript-eslint/parser": "^5.41.0",
"autoprefixer": "^10.4.7",
"cypress": "^10.6.0",
- "eslint": "^8.22.0",
- "eslint-config-airbnb": "^19.0.4",
+ "eslint": "^8.0.1",
"eslint-config-prettier": "^8.5.0",
- "eslint-plugin-import": "^2.25.3",
- "eslint-plugin-jsx-a11y": "^6.5.1",
+ "eslint-config-standard-with-typescript": "^23.0.0",
+ "eslint-import-resolver-typescript": "^3.5.2",
+ "eslint-plugin-import": "^2.26.0",
+ "eslint-plugin-n": "^15.0.0",
"eslint-plugin-prettier": "^4.2.1",
- "eslint-plugin-react": "^7.28.0",
- "eslint-plugin-react-hooks": "^4.3.0",
- "lint-staged": "^13.0.3",
+ "eslint-plugin-promise": "^6.0.0",
+ "eslint-plugin-react": "^7.31.10",
+ "eslint-plugin-react-hooks": "^4.6.0",
"postcss": "^8.4.13",
"prettier": "^2.7.1",
"puppeteer": "^13.7.0",
"react-snap": "^1.23.0",
"tailwindcss": "^3.0.24",
- "typescript": "^4.6.4"
+ "typescript": "*"
}
}
diff --git a/postcss.config.js b/postcss.config.js
index 33ad091d26..5cbc2c7d87 100644
--- a/postcss.config.js
+++ b/postcss.config.js
@@ -1,6 +1,6 @@
module.exports = {
plugins: {
tailwindcss: {},
- autoprefixer: {},
- },
-}
+ autoprefixer: {}
+ }
+};
diff --git a/public/index.html b/public/index.html
index 14a10c11ee..fe605a2de6 100644
--- a/public/index.html
+++ b/public/index.html
@@ -31,9 +31,7 @@
rel="stylesheet"
/>
-
- ReactPlay - One app to learn, create, and share ReactJS projects.
-
+ ReactPlay - One app to learn, create, and share ReactJS projects.