Skip to content

Commit fe9dfdd

Browse files
committed
fix(web): Modernize contex usage for React 19
warning In React 19, you can render '<Context>' as a provider instead of '<Context.Provider>' @eslint-react/no-context-provider warning In React 19, 'use' is preferred over 'useContext' because it is more flexible @eslint-react/no-use-context
1 parent 90acb53 commit fe9dfdd

5 files changed

Lines changed: 16 additions & 16 deletions

File tree

web/src/data-providers/ConfigDataProvider.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
We need any, because we don't know the type of the children
44
*/
55

6-
import { createContext, useContext, useEffect, useState, JSX } from 'react'
6+
import { createContext, use, useEffect, useState, JSX } from 'react'
77

88
export interface Config {
99
headerHTML?: string
@@ -31,7 +31,7 @@ export const ConfigDataProvider = ({ children }: any): JSX.Element => {
3131
})()
3232
}, [])
3333

34-
return <Context.Provider value={config}>{children}</Context.Provider>
34+
return <Context value={config}>{children}</Context>
3535
}
3636

37-
export const useConfig = (): Config => useContext(Context)
37+
export const useConfig = (): Config => use(Context)

web/src/data-providers/MessageBannerProvider.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
We need any, because we don't know the type of the children
44
*/
55

6-
import React, { useState, useCallback, useContext, JSX } from 'react'
6+
import React, { useState, useCallback, use, JSX } from 'react'
77
import Banner from '../components/InfoBanner'
88

99
export interface Message {
@@ -72,11 +72,11 @@ export function MessageBannerProvider({ children }: any): JSX.Element {
7272
}, [])
7373

7474
return (
75-
<Context.Provider value={{ showMessage, clearMessages }}>
75+
<Context value={{ showMessage, clearMessages }}>
7676
<Banner message={message} />
7777
{children}
78-
</Context.Provider>
78+
</Context>
7979
)
8080
}
8181

82-
export const useMessageBanner = (): MessageBannerState => useContext(Context)
82+
export const useMessageBanner = (): MessageBannerState => use(Context)

web/src/data-providers/ProjectDataProvider.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
We need any, because we don't know the type of the children
44
*/
55

6-
import React, { createContext, useContext, useEffect, useState, JSX } from 'react'
6+
import React, { createContext, use, useEffect, useState, JSX } from 'react'
77
import { type Project } from '../models/ProjectsResponse'
88
import type ProjectsResponse from '../models/ProjectsResponse'
99
import { useMessageBanner } from './MessageBannerProvider'
@@ -77,7 +77,7 @@ export function ProjectDataProvider({ children }: any): JSX.Element {
7777
loadData()
7878
}, [])
7979

80-
return <Context.Provider value={state}>{children}</Context.Provider>
80+
return <Context value={state}>{children}</Context>
8181
}
8282

83-
export const useProjects = (): ProjectState => useContext(Context)
83+
export const useProjects = (): ProjectState => use(Context)

web/src/data-providers/SearchProvider.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
We need any, because we don't know the type of the children
44
*/
55

6-
import React, { createContext, useContext, useEffect, useState, JSX } from 'react'
6+
import React, { createContext, use, useEffect, useState, JSX } from 'react'
77
import { type Project } from '../models/ProjectsResponse'
88
import { useProjects } from './ProjectDataProvider'
99
import Fuse from 'fuse.js'
@@ -68,7 +68,7 @@ export function SearchProvider({ children }: any): JSX.Element {
6868
})
6969
}, [projects])
7070

71-
return <Context.Provider value={state}>{children}</Context.Provider>
71+
return <Context value={state}>{children}</Context>
7272
}
7373

74-
export const useSearch = (): SearchState => useContext(Context)
74+
export const useSearch = (): SearchState => use(Context)

web/src/data-providers/StatsDataProvider.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
We need any, because we don't know the type of the children
44
*/
55

6-
import { createContext, useContext, useEffect, useState, JSX } from 'react'
6+
import { createContext, use, useEffect, useState, JSX } from 'react'
77
import { useMessageBanner } from './MessageBannerProvider'
88

99

@@ -79,7 +79,7 @@ export function StatsDataProvider({ children }: any): JSX.Element {
7979
loadData()
8080
}, [])
8181

82-
return <Context.Provider value={state}>{children}</Context.Provider>
82+
return <Context value={state}>{children}</Context>
8383
}
8484

85-
export const useStats = (): StatsState => useContext(Context)
85+
export const useStats = (): StatsState => use(Context)

0 commit comments

Comments
 (0)