Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
109 commits
Select commit Hold shift + click to select a range
2b5f14c
Require Hello World in the document
acbart Jan 31, 2022
a7dee05
Rename text.Test.tsx to text.test.tsx
acbart Jan 31, 2022
3e381f3
Include the task info
acbart Jan 31, 2022
fee03d3
Merge branch 'task-first-branch' of https://github.com/UD-CISC275-S22…
acbart Jan 31, 2022
986b28a
First stab at questions
acbart Feb 2, 2022
e6b1dab
Allow one or more instances of the Hello World text
acbart Feb 3, 2022
2c852d6
Move Question interface to separate file
acbart Feb 6, 2022
dc3662a
Create answer interface
acbart Feb 8, 2022
51221ee
First stab at nested tasks
acbart Feb 8, 2022
3a793cc
Document Question interface
acbart Feb 9, 2022
5c39a97
Expand questions test data
acbart Feb 9, 2022
6ae0b6f
Add a little hint for a tough one
acbart Feb 9, 2022
b1bbbc8
Nested tests (phew)
acbart Feb 9, 2022
ab9bfb5
Basic starter files for components
acbart Feb 9, 2022
9765863
Another extra paren error
acbart Feb 9, 2022
d6c10cd
Merge branch 'main' of https://github.com/UD-CISC275-S22/react-typesc…
acbart Feb 13, 2022
c0bbc39
Updated, complete tests for all state components
acbart Feb 13, 2022
eb40f3e
Forgot task record for state
acbart Feb 19, 2022
6669ffa
First draft of components subtasks
acbart Feb 19, 2022
562f306
Another subtask, ChooseTeam
acbart Feb 24, 2022
4a34f5f
Oops order out of operations
acbart Feb 24, 2022
7327f4c
Add headers to each subtask
acbart Feb 24, 2022
cf7c212
Make testing easier for these components
acbart Feb 24, 2022
08feee1
Ugh this component is stupid, let's just forget about it for now
acbart Feb 24, 2022
89053a4
Provide the tests for the bad components
acbart Feb 24, 2022
41387d3
First stab at form task components
acbart Feb 25, 2022
1b03faf
Provide tests, change addQuestion to changeColor
acbart Feb 27, 2022
43b41ec
Fix entering blank text for GiveAttempts
acbart Mar 10, 2022
7a20734
Include json test command here
acbart Aug 24, 2024
7fe9ca3
Require Hello World in the document
acbart Jan 31, 2022
b8b8878
Include the task info
acbart Jan 31, 2022
fbdebde
Rename text.Test.tsx to text.test.tsx
acbart Jan 31, 2022
2f0146c
Allow one or more instances of the Hello World text
acbart Feb 3, 2022
a6acb43
Merge branch 'task-first-branch' of https://github.com/frontend-fun/t…
acbart Aug 24, 2024
83c4461
Basic functions tests and stubs
acbart Jan 30, 2022
a486530
Fix test organization
acbart Jan 30, 2022
9722564
Fix issue in fahrenheit conversion
acbart Jan 30, 2022
bd06d5d
Move around some of the functions
acbart Feb 3, 2022
4cd1900
Explain what the actual functions require you to do
acbart Feb 3, 2022
cf1d21a
Update formatting
acbart Aug 24, 2024
e11693a
Add in points
acbart Aug 24, 2024
7cc4e3f
First stab at array problems
acbart Feb 1, 2022
f253337
Add in the rest of the tests
acbart Feb 1, 2022
b8777b1
Fix question text
acbart Feb 1, 2022
f87771e
Update arrays.test.ts
acbart Feb 11, 2022
f0d316b
Add in points
acbart Aug 24, 2024
3660252
First stab at questions
acbart Feb 2, 2022
09d3d4f
Move Question interface to separate file
acbart Feb 6, 2022
9a24024
Create answer interface
acbart Feb 8, 2022
879fe17
First stab at nested tasks
acbart Feb 8, 2022
4d29d21
Document Question interface
acbart Feb 9, 2022
d71d9fc
Expand questions test data
acbart Feb 9, 2022
c955718
Add a little hint for a tough one
acbart Feb 9, 2022
c574699
Nested tests (phew)
acbart Feb 9, 2022
a368ad0
Forgot the task record!
acbart Feb 19, 2022
304184e
Fix typo in editOption test, and missing return type for editOption
acbart Mar 1, 2022
1b76b80
Fix formatting
acbart Aug 24, 2024
23314f3
update point values for tests
acbart Aug 24, 2024
82faacc
Fix react return value
acbart Aug 24, 2024
cc7d4db
Update react tests to use async
acbart Aug 24, 2024
c419dc9
Fix linting
acbart Aug 24, 2024
444b03b
Merge branch 'task-state' into task-components
acbart Aug 24, 2024
c1aab28
Merge branch 'update-branches' into task-components
acbart Aug 24, 2024
50a9c85
Update for new react
acbart Aug 24, 2024
28ee8d2
Merge branch 'task-components' into task-forms
acbart Aug 24, 2024
084abb4
Update the code for new version of react
acbart Aug 24, 2024
c95dc0f
This one too
acbart Aug 24, 2024
3119c0f
Add in points
acbart Aug 24, 2024
4ded27a
task 3 complete
rismovv Sep 5, 2025
a4f8532
second-task
rismovv Sep 5, 2025
137b1cc
second-task
rismovv Sep 5, 2025
c57d2f4
third-task
rismovv Sep 5, 2025
a62f095
third-task
rismovv Sep 5, 2025
ce1ad1b
Merge branch 'solved-first-branch' into solved-functions
rismovv Sep 10, 2025
7ab69c5
Merge pull request #1 from rismovv/solved-functions
rismovv Sep 10, 2025
ba2196a
solved funcitons again
rismovv Sep 10, 2025
3adcb63
Merge pull request #2 from rismovv/solved-functions
rismovv Sep 10, 2025
74f382f
fixing add3 function
rismovv Sep 10, 2025
a86d400
Merge pull request #3 from rismovv/solved-functions
rismovv Sep 10, 2025
52328e1
Merge remote-tracking branch 'upstream/task-arrays' into solved-arrays
rismovv Sep 10, 2025
94afeec
solved arrays
rismovv Sep 11, 2025
d8f7c6d
Merge pull request #4 from rismovv/solved-arrays
rismovv Sep 11, 2025
f7edacc
Merge remote-tracking branch 'upstream/task-objects' into solved-objects
rismovv Sep 16, 2025
67fb89b
Merge pull request #5 from rismovv/solved-objects
rismovv Sep 16, 2025
1b8a427
solved object agian
rismovv Sep 16, 2025
5ba3c2f
Merge pull request #6 from rismovv/solved-objects
rismovv Sep 16, 2025
131d22c
Resolve merge conflicts by taking 'theirs' version for restore
rismovv Sep 20, 2025
2286ee2
solved nested agan again
rismovv Sep 20, 2025
13e7e74
Merge pull request #7 from rismovv/solved-nested
rismovv Sep 20, 2025
14c8bc1
Merge upstream/task-state into solved-state
rismovv Sep 26, 2025
4936c84
Complete all state-related components
rismovv Sep 26, 2025
030ff39
solved states
rismovv Sep 26, 2025
0df8dab
Merge pull request #8 from rismovv/solved-state
rismovv Sep 26, 2025
8f28077
re solved-state
rismovv Sep 26, 2025
4291770
Merge pull request #9 from rismovv/solved-state
rismovv Sep 26, 2025
201879d
Merge and add bad-components with tests
rismovv Sep 28, 2025
354c978
Merge pull request #10 from rismovv/solved-components
rismovv Sep 28, 2025
4cfdef3
Complete DoubleHalf component implementation
rismovv Sep 30, 2025
5ee1c88
Merge upstream/task-forms - resolved conflicts in App.tsx
rismovv Sep 30, 2025
bee9054
Implement all form components: CheckAnswer, GiveAttempts, EditMode, C…
rismovv Sep 30, 2025
5702769
Merge pull request #11 from rismovv/solved-forms
rismovv Sep 30, 2025
f70b056
Fix linter errors: add braces to arrow functions in form components
rismovv Sep 30, 2025
30709c5
Merge pull request #12 from rismovv/solved-forms
rismovv Sep 30, 2025
bcebc57
Fix EditMode component: add Bootstrap form-switch class for edit mode…
rismovv Sep 30, 2025
0421d18
Fix ChangeColor component: use exact color name for backgroundColor s…
rismovv Sep 30, 2025
da5b7f3
Merge pull request #13 from rismovv/solved-forms
rismovv Sep 30, 2025
00adbad
Fix EditMode accessibility: add proper id and htmlFor attributes for …
rismovv Sep 30, 2025
6efd7b5
Add aria-label attributes to checkboxes for better accessibility testing
rismovv Sep 30, 2025
92134bd
Merge pull request #14 from rismovv/solved-forms
rismovv Sep 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
{
"env": {
"browser": true,
"es2021": true,
"node": true
},
"settings": {
"react": {
"version": "detect"
}
},
"extends": [
"eslint:recommended",
"plugin:react/recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
"prettier"
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaFeatures": {
"jsx": true
},
"ecmaVersion": 12,
"sourceType": "module"
},
"plugins": ["react", "@typescript-eslint", "prettier"],
"rules": {
"prettier/prettier": [
"error",
{
"endOfLine": "auto"
}
],
"no-extra-parens": [
"warn",
"all",
{
"nestedBinaryExpressions": false,
"returnAssign": false,
"enforceForArrowConditionals": false,
"ignoreJSX": "all"
}
],
"brace-style": ["error", "1tbs"],
"indent": ["error", 4],
"quotes": ["error", "double"],
"semi": ["error", "always"]
}
}
143 changes: 67 additions & 76 deletions package-lock.json

Large diffs are not rendered by default.

5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
"build": "react-scripts build",
"test": "react-scripts test",
"test:cov": "react-scripts test --coverage --watchAll",
"test:json": "react-scripts test --json --watchAll=false --outputFile jest-output.json --coverage",
"eject": "react-scripts eject",
"lint": "eslint ./src --ext .tsx --ext .ts --max-warnings 0",
"eslint-output": "eslint-output ./src --ext .tsx --ext .ts --max-warnings 0",
Expand Down Expand Up @@ -48,8 +49,8 @@
"@babel/plugin-transform-private-property-in-object": "^7.24.7",
"@testing-library/dom": "^10.4.0",
"@testing-library/react": "^16.0.0",
"@types/react": "^18.3.3",
"@types/react-dom": "^18.3.0",
"@types/react": "^18.3.24",
"@types/react-dom": "^18.3.7",
"@typescript-eslint/eslint-plugin": "^8.2.0",
"@typescript-eslint/parser": "^8.2.0",
"eslint": "^8.57.0",
Expand Down
5 changes: 5 additions & 0 deletions public/tasks/task-arrays.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Task - Arrays

Version: 0.0.1

Implement functions that work with arrays immutably.
5 changes: 5 additions & 0 deletions public/tasks/task-components.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Task - Components

Version: 0.0.1

Fix some components that are using state incorrectly.
5 changes: 5 additions & 0 deletions public/tasks/task-first-branch.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Task - First Branch

Version: 0.0.1

Pass a short test to have certain text on the page.
5 changes: 5 additions & 0 deletions public/tasks/task-functions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Task - Functions

Version: 0.0.1

Implement a bunch of functions that work on primitives.
5 changes: 5 additions & 0 deletions public/tasks/task-nested.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Task - Nested

Version: 0.0.1

Implement functions that work with nested arrays and objects immutably.
5 changes: 5 additions & 0 deletions public/tasks/task-objects.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Task - Objects

Version: 0.0.1

Implement functions that work with objects immutably.
5 changes: 5 additions & 0 deletions public/tasks/task-state.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Task - State

Version: 0.0.1

Create some new components that have React State.
6 changes: 6 additions & 0 deletions src/App.css
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,12 @@
color: #61dafb;
}

.red-bg {
background-color: #ff0000;
color: white;
border-radius: 8px;
}

@keyframes App-logo-spin {
from {
transform: rotate(0deg);
Expand Down
94 changes: 89 additions & 5 deletions src/App.tsx
Original file line number Diff line number Diff line change
@@ -1,16 +1,100 @@
import React from "react";
import "./App.css";
import { ChangeType } from "./components/ChangeType";
import { RevealAnswer } from "./components/RevealAnswer";
import { StartAttempt } from "./components/StartAttempt";
import { TwoDice } from "./components/TwoDice";
import { CycleHoliday } from "./components/CycleHoliday";
import { Counter } from "./components/Counter";
import { DoubleHalf } from "./bad-components/DoubleHalf";
import { ColoredBox } from "./bad-components/ColoredBox";
import { ShoveBox } from "./bad-components/ShoveBox";
import { ChooseTeam } from "./bad-components/ChooseTeam";
import { CheckAnswer } from "./form-components/CheckAnswer";
import { GiveAttempts } from "./form-components/GiveAttempts";
import { EditMode } from "./form-components/EditMode";
import { MultipleChoiceQuestion } from "./form-components/MultipleChoiceQuestion";
import { ChangeColor } from "./form-components/ChangeColor";

function App(): React.JSX.Element {
// Bootstrap CDN for demo purposes
React.useEffect(() => {
const link = document.createElement("link");
link.rel = "stylesheet";
link.href =
"https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css";
document.head.appendChild(link);
return () => {
document.head.removeChild(link);
};
}, []);

const logHelloWorld = () => {
// eslint-disable-next-line no-console
console.log("Hello World!");
};

return (
<div className="App">
{/* Header 1 */}
<header className="App-header">
UD CISC275 with React Hooks and TypeScript
<h1>UD CISC275 with React Hooks and TypeScript</h1>
</header>
<p>
Edit <code>src/App.tsx</code> and save. This page will
automatically reload.
</p>
{/* Image with alt text */}
<img
src={process.env.PUBLIC_URL + "/logo192.png"}
alt="React Logo"
style={{ width: 100, margin: 16 }}
/>
<ul>
<li>First item</li>
<li>Second item</li>
<li>Third item</li>
</ul>
<button
type="button"
className="btn btn-primary"
onClick={logHelloWorld}
>
Log Hello World
</button>
{/* Red background element for CSS check */}
<div className="red-bg" style={{ backgroundColor: "#ff0000" }}>
This element has a red background.
</div>
<hr></hr>
<DoubleHalf></DoubleHalf>
<hr></hr>
<CheckAnswer expectedAnswer="42"></CheckAnswer>
<hr></hr>
<GiveAttempts></GiveAttempts>
<hr></hr>
<EditMode></EditMode>
<hr></hr>
<ChangeColor></ChangeColor>
<hr></hr>
<MultipleChoiceQuestion
options={["a", "b", "c"]}
expectedAnswer="b"
></MultipleChoiceQuestion>
<hr></hr>
<ChooseTeam></ChooseTeam>
<hr></hr>
<ColoredBox></ColoredBox>
<hr></hr>
<ShoveBox></ShoveBox>
<hr></hr>
<Counter></Counter>
<hr />
<RevealAnswer></RevealAnswer>
<hr />
<StartAttempt></StartAttempt>
<hr />
<TwoDice></TwoDice>
<hr />
<ChangeType></ChangeType>
<hr />
<CycleHoliday></CycleHoliday>
</div>
);
}
Expand Down
Loading