when installing a module, specify a version to lock it in.
Run 'npm install PackageName@version' to specify the version.
Prettier does not include all of the configuration settings we need to enforce our ESLint rules and coding standards. Luckily, ESLint includes a --fix command that will format the code based on the eslint configuration. We will be using a package that combines ESLint --fix with Prettier.
Install the "Prettier ESLint" VS Code plugin from the marketplace.
In your editor settings, set the default formatter to "Prettier ESLint" (Settings UI) or add the line "editor.defaultFormatter": "rvest.vs-code-prettier-eslint" to your settings JSON.
In your editor settings, turn on "Editor: Format on Save" (Settings UI) or add the line "editor.formatOnSave": true to your settings JSON.
To run prettier manually in the console, run npm run prettier
Further Prettier documentation can be found at the Prettier website
Action triggered on push to Main, Develop, Release/*, the image will be tag with the branch name
In Github- Setting - secrets - Add the following secrets (by repository owner or authorized personnel)

Booleans should always be named variableNameFlag
Arrays should be named nameOfVariableList
Use fully camel-case component names (ComponentName vs componentName)
A parent component that passes its props to a child should have the same name for those props as the child.
Do not use "var" to declare variables. Use const for static variables and let for nonstatic
Use useMemo to simplify stateful logic that only exists to derive a value from one or more other values.
Use propTypes and defaultProps to reduce non-semantic code to validate variables
Use specific array functions (map, filter, reduce, etc) over for loops
Use optional chaining to short-circuit when accessing properties with dot notation or bracket notation
Simplify if / else statements using ternary operators where possible
No dangling if statements
Keep storybook up to date
Descriptive comments of a section of code's purpose or potential issues are expected use /* C style */ comments. Use /** */ comments to annotate prop types (may need jsdocs to get intellisense working with this). Use /*** ***/ comments for headings or to signify logical sections of code. Use standard // C++ style comments for commenting out code when testing (make sure to clean it up though!), e.g.
/*** prop types ***/
Form.propTypes = {
/**
* Title which appears in form frame if applicable
*/
title: PropTypes.string,
/**
* Initial form data E.g. data={{firstName: "Bill", lastName: "Jameson", enabled: true}}
*/
data: PropTypes.object,
/** For debugging purposes
* Show all -- current form data, current form validation, current form status, initial data of form
*/
showInfo: PropTypes.bool,
/** For debugging purposes
* Show current form data
*/
showData: PropTypes.bool,
/** For debugging purposes
* Show current form validation
*/
showValidation: PropTypes.bool,
/** For debugging purposes
* Show current form status
*/
showStatus: PropTypes.bool,
/** For debugging purposes
* Show initial data of form - or last submitted data if submitted
* Resetting form will change current form data to this value
*/
showInitialData: PropTypes.bool,
/**
* Indicates whether form includes default submit button
*/
submitButton: PropTypes.bool,
/**
* Indicates whether form includes default reset button
*/
resetButton: PropTypes.bool,
/**
* Indicates whether form includes default clear button
*/
clearButton: PropTypes.bool,
/**
* Indicates action to occur on (after) successful submit
*/
onSubmit: PropTypes.func,
/**
* If true, validation errors will display only after first submit attempt
*/
validateOnlyAfterSubmit: PropTypes.bool,
/**
* If true, form may be submitted even if data has not changed (dirty)
*/
canSubmitUnchanged: PropTypes.bool,
/**
* Do not pass children as props. Instead, nest children between the opening and closing tags.
*/
children: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),
};
const Component = props => {
const { prop1, prop3 } = props;
return <Child {...props} />;
};
const Component = props => {
const { prop1, prop3 } = props;
const child1Props = useMemo(() => {
child1prop1 = props.uniqueProp1;
}, [props]);
const child2Props = useMemo(() => {
child2prop1 = props.uniqueProp2;
}, [props]);
return (
<>
<Child1 {...child1Props} />
<Child2 {...child2Props} />
</>
);
};
Look at standup notes for things that need to be changed and make those
Look over every changed / new file and verify usage
Remove unused declarations / imports
Remove unused props
Look for optimizations (useMemo etc)
Find and resolve any todo statements if possible
Look over every changed / new file it GitHub and verify file structure and naming
Look over changed / new files and make sure no defunct code is present
Pull the latest dev code and merge into your branch
Verify usage of latest CJIS, hooks, utils, etc.
Make sure there are no errors or warnings in the console or unused declarations/props remove console logs
Verify that there are default props and prop types for every new file/prop in changed files
Move update ticket column and add any needed notes
(In this example let's say we are creating a new repo called "new-react-app")
(optional) Create a new blank repo on GitHub. Make no configuration changes.
Run the following commands on your local pc (e.g. in your repos folder):
git clone https://github.com/RicWilliamsCC/react-starter-app new-react-app
cd new-react-app
If you are working on or testing the init-script itself in development, change to your feature branch
npm run init-app
To contirm app runs properly
Content type
Image
Digest
sha256:cf7d66c81…
Size
22.2 MB
Last updated
over 2 years ago
docker pull claytoncountysd/jotsjailinterface:v20240408.182919-7