-
Notifications
You must be signed in to change notification settings - Fork 683
Project coding standards and conventions
This project does not use TypeScript or ECMAScript modules, so .ts
and .mjs
extensions are not used.
The .jsx
extension is unnecessary because all files are processed for JSX.
The build process parses and analyzes GraphQL files based on this extension.
Example: camelCasedFilename.js
This is done for consistency and readability. Even files defining a component, such as the Button component, must have lower case file names.
Their directories however are in ProperCase.
Example: ProperCaseDirectory
Components must always be directories and never single files. The ProperCase indicates that the directory is a component.
Example: checkbox.css
and checkbox.js
This is done for consistency, readability, and future extensibility.
Use a container.js
file to wrap simple, presentational components with a Higher-Order Component
Presentational components are meant to be simple and portable. They require only props as arguments and no other external connections.
Wrapping these components with an HOC allows them to connect to the application's router, Redux store, and network/cache clients.
Data from the GraphQL API is snake_case
and all other property and variable names are camelCase
.
This helps to visually distinguish between internal variable names and data objects from the API.
- Sync calls:
- Check the calendar
- Recordings - https://goo.gl/2uWUhX
- Slack: #pwa Join #pwa
- Contributing
- Product