Skip to content

Commit 80a20a2

Browse files
committed
upgrade to react 19
1 parent 3f6711c commit 80a20a2

File tree

29 files changed

+548
-418
lines changed

29 files changed

+548
-418
lines changed

epicshop/playwright.config.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import { type PlaywrightTestConfig } from '@playwright/test'
2-
import { devices } from '@playwright/test'
1+
import { type PlaywrightTestConfig , devices } from '@playwright/test'
32
import 'dotenv/config'
43

54
const PORT = process.env.PORT || 3000

eslint.config.js

+5-2
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
/** @type {import('@types/eslint').Linter.Config} */
22
export default {
3+
files: ['**/*.js', '**/*.ts', '**/*.tsx'],
34
languageOptions: { parser: await import('@typescript-eslint/parser') },
45
plugins: {
56
'@typescript-eslint': (await import('@typescript-eslint/eslint-plugin'))
67
.default,
8+
'react-hooks': (await import('eslint-plugin-react-hooks')).default,
79
import: (await import('eslint-plugin-import')).default,
810
},
911
rules: {
10-
// playwright requires destructuring in fixtures even if you don't use anything 🤷‍♂️
11-
'no-empty-pattern': 'off',
12+
'react-hooks/rules-of-hooks': 'error',
13+
'react-hooks/exhaustive-deps': 'warn',
14+
1215
'@typescript-eslint/consistent-type-imports': [
1316
'warn',
1417
{

exercises/01.latest-ref/01.solution.ref/increments.test.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { expect, testStep } from '@epic-web/workshop-utils/test'
22
import { waitFor, within } from '@testing-library/dom'
3-
import { userEvent } from '#shared/user-event.cjs'
3+
import { userEvent } from '@testing-library/user-event'
44
import '.'
55

66
const screen = within(document.body)

exercises/01.latest-ref/01.solution.ref/step-change.test.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { expect, testStep } from '@epic-web/workshop-utils/test'
22
import { fireEvent, waitFor, within } from '@testing-library/dom'
3-
import { userEvent } from '#shared/user-event.cjs'
3+
import { userEvent } from '@testing-library/user-event'
44
import '.'
55

66
const screen = within(document.body)

exercises/02.composition/01.solution/ui-still-works.test.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { expect, testStep } from '@epic-web/workshop-utils/test'
22
import { within } from '@testing-library/dom'
3-
import { userEvent } from '#shared/user-event.cjs'
3+
import { userEvent } from '@testing-library/user-event'
44
import '.'
55

66
const screen = within(document.body)

exercises/04.slots/02.solution.generic/toggle.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { createContext, use, useId, useState } from 'react'
2-
import { Switch } from '#shared/switch.tsx'
32
import { SlotContext } from './slots'
3+
import { Switch } from '#shared/switch.tsx'
44

55
type ToggleValue = { on: boolean; toggle: () => void; id: string }
66
const ToggleContext = createContext<ToggleValue | null>(null)

exercises/04.slots/03.problem.prop/toggle.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { createContext, use, useId, useState } from 'react'
2-
import { Switch } from '#shared/switch.tsx'
32
import { SlotContext } from './slots'
3+
import { Switch } from '#shared/switch.tsx'
44

55
// 🐨 delete all this context stuff
66
type ToggleValue = { on: boolean; toggle: () => void; id: string }

exercises/05.prop-getters/01.problem.collections/app.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { Switch } from '#shared/switch.tsx'
21
import { useToggle } from './toggle.tsx'
2+
import { Switch } from '#shared/switch.tsx'
33

44
export function App() {
55
const { on, togglerProps } = useToggle()

exercises/05.prop-getters/01.solution.collections/app.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { Switch } from '#shared/switch.tsx'
21
import { useToggle } from './toggle.tsx'
2+
import { Switch } from '#shared/switch.tsx'
33

44
export function App() {
55
const { on, togglerProps } = useToggle()

exercises/05.prop-getters/02.problem.getters/app.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { Switch } from '#shared/switch.tsx'
21
import { useToggle } from './toggle.tsx'
2+
import { Switch } from '#shared/switch.tsx'
33

44
export function App() {
55
// 💣 delete this:

exercises/05.prop-getters/02.solution.getters/app.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { Switch } from '#shared/switch.tsx'
21
import { useToggle } from './toggle.tsx'
2+
import { Switch } from '#shared/switch.tsx'
33

44
export function App() {
55
const { on, getTogglerProps } = useToggle()

exercises/05.prop-getters/02.solution.getters/forwards-props.test.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { expect, testStep } from '@epic-web/workshop-utils/test'
22
import { screen, waitFor } from '@testing-library/dom'
3-
import { userEvent } from '#shared/user-event.cjs'
3+
import { userEvent } from '@testing-library/user-event'
44
import '.'
55

66
const customButton = await testStep('Custom button is rendred', () =>

exercises/06.state-initializers/01.problem.initial/app.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { Switch } from '#shared/switch.tsx'
21
import { useToggle } from './toggle.tsx'
2+
import { Switch } from '#shared/switch.tsx'
33

44
export function App() {
55
// 🐨 add an initialOn option (set it to true) and get the reset callback from useToggle

exercises/06.state-initializers/01.solution.initial/app.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { Switch } from '#shared/switch.tsx'
21
import { useToggle } from './toggle.tsx'
2+
import { Switch } from '#shared/switch.tsx'
33

44
export function App() {
55
const { on, getTogglerProps, reset } = useToggle({ initialOn: true })

exercises/06.state-initializers/02.problem.stability/app.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { useState } from 'react'
2-
import { Switch } from '#shared/switch.tsx'
32
import { useToggle } from './toggle.tsx'
3+
import { Switch } from '#shared/switch.tsx'
44

55
export function App() {
66
const [initialOn, setInitialOn] = useState(true)

exercises/06.state-initializers/02.solution.stability/app.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { useState } from 'react'
2-
import { Switch } from '#shared/switch.tsx'
32
import { useToggle } from './toggle.tsx'
3+
import { Switch } from '#shared/switch.tsx'
44

55
export function App() {
66
const [initialOn, setInitialOn] = useState(true)

exercises/07.state-reducer/01.problem/app.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { useState } from 'react'
2-
import { Switch } from '#shared/switch.tsx'
32
import { useToggle } from './toggle.tsx'
3+
import { Switch } from '#shared/switch.tsx'
44

55
export function App() {
66
const [timesClicked, setTimesClicked] = useState(0)

exercises/07.state-reducer/01.solution/app.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { useState } from 'react'
2-
import { Switch } from '#shared/switch.tsx'
32
import { useToggle } from './toggle.tsx'
3+
import { Switch } from '#shared/switch.tsx'
44

55
export function App() {
66
const [timesClicked, setTimesClicked] = useState(0)

exercises/07.state-reducer/01.solution/click-limit.test.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { expect, testStep } from '@epic-web/workshop-utils/test'
22
import { render, screen } from '@testing-library/react'
3-
import { userEvent } from '#shared/user-event.cjs'
3+
import { userEvent } from '@testing-library/user-event'
44
import { App } from './app.tsx'
55

66
await testStep('can render the app', () => {

exercises/07.state-reducer/02.problem.default/app.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { useState } from 'react'
2+
import { useToggle } from './toggle.tsx'
23
import { Switch } from '#shared/switch.tsx'
34
// 🐨 import the toggleReducer
4-
import { useToggle } from './toggle.tsx'
55

66
export function App() {
77
const [timesClicked, setTimesClicked] = useState(0)

exercises/07.state-reducer/02.solution.default/app.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { useState } from 'react'
2-
import { Switch } from '#shared/switch.tsx'
32
import { toggleReducer, useToggle } from './toggle.tsx'
3+
import { Switch } from '#shared/switch.tsx'
44

55
export function App() {
66
const [timesClicked, setTimesClicked] = useState(0)

exercises/07.state-reducer/02.solution.default/click-limit.test.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { expect, testStep } from '@epic-web/workshop-utils/test'
22
import { render, screen } from '@testing-library/react'
3-
import { userEvent } from '#shared/user-event.cjs'
3+
import { userEvent } from '@testing-library/user-event'
44
import { App } from './app.tsx'
55

66
await testStep('can render the app', () => {

exercises/08.control-props/01.solution/synchronized.test.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { expect, testStep } from '@epic-web/workshop-utils/test'
22
import { render, screen } from '@testing-library/react'
3-
import { userEvent } from '#shared/user-event.cjs'
3+
import { userEvent } from '@testing-library/user-event'
44
import { App } from './app.tsx'
55

66
await testStep('can render the app', () => {

exercises/08.control-props/01.solution/uncontrolled.test.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { expect, testStep } from '@epic-web/workshop-utils/test'
22
import { render, screen } from '@testing-library/react'
3-
import { userEvent } from '#shared/user-event.cjs'
3+
import { userEvent } from '@testing-library/user-event'
44
import { Toggle } from './toggle.tsx'
55

66
await testStep('can render Toggle with no props', () => {

0 commit comments

Comments
 (0)