chore: heygermany customer project
This commit is contained in:
2
packages/components/index.ts
Normal file
2
packages/components/index.ts
Normal file
@@ -0,0 +1,2 @@
|
||||
export { QueryClientProvider } from './src/QueryClientProvider'
|
||||
export { ThemeProvider } from './src/ThemeProvider'
|
||||
37
packages/components/package.json
Normal file
37
packages/components/package.json
Normal file
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"name": "@heygermany/components",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"main": "index.ts",
|
||||
"scripts": {
|
||||
"tsc": "tsc"
|
||||
},
|
||||
"dependencies": {
|
||||
"@heygermany/mantine-theme": "workspace:0.0.0",
|
||||
"@pikku/mantine": "^0.12.6",
|
||||
"@pikku/react": "^0.12.5"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@mantine/core": "^8.2.8",
|
||||
"@mantine/dates": "^8.3.1",
|
||||
"@mantine/hooks": "^8.2.8",
|
||||
"@tanstack/react-query": "^5.85.6",
|
||||
"dayjs": "^1.11.18",
|
||||
"react": "^19",
|
||||
"react-dom": "^19"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@mantine/core": "^8.2.8",
|
||||
"@mantine/dates": "^8.3.1",
|
||||
"@mantine/hooks": "^8.2.8",
|
||||
"@tanstack/react-query": "^5.85.6",
|
||||
"@types/node": "^22",
|
||||
"@types/react": "^19",
|
||||
"@types/react-dom": "^19",
|
||||
"dayjs": "^1.11.18",
|
||||
"react": "^19",
|
||||
"react-dom": "^19",
|
||||
"typescript": "^5"
|
||||
}
|
||||
}
|
||||
21
packages/components/src/QueryClientProvider.tsx
Normal file
21
packages/components/src/QueryClientProvider.tsx
Normal file
@@ -0,0 +1,21 @@
|
||||
'use client'
|
||||
|
||||
import { QueryClient, QueryClientProvider as TanstackQueryClientProvider } from '@tanstack/react-query'
|
||||
import { useState } from 'react'
|
||||
|
||||
export function QueryClientProvider({ children }: { children: React.ReactNode }) {
|
||||
const [queryClient] = useState(() => new QueryClient({
|
||||
defaultOptions: {
|
||||
queries: {
|
||||
staleTime: 60 * 1000,
|
||||
retry: 1,
|
||||
},
|
||||
},
|
||||
}))
|
||||
|
||||
return (
|
||||
<TanstackQueryClientProvider client={queryClient}>
|
||||
{children}
|
||||
</TanstackQueryClientProvider>
|
||||
)
|
||||
}
|
||||
41
packages/components/src/ThemeProvider.tsx
Normal file
41
packages/components/src/ThemeProvider.tsx
Normal file
@@ -0,0 +1,41 @@
|
||||
'use client'
|
||||
|
||||
import { MantineProvider, localStorageColorSchemeManager } from '@pikku/mantine/core'
|
||||
import { DatesProvider } from '@mantine/dates'
|
||||
import { DAYJS_LOCALE_MAP, theme } from '@heygermany/mantine-theme'
|
||||
|
||||
import 'dayjs/locale/en'
|
||||
import 'dayjs/locale/de'
|
||||
import 'dayjs/locale/uk'
|
||||
import 'dayjs/locale/tr'
|
||||
import 'dayjs/locale/bs'
|
||||
import 'dayjs/locale/sq'
|
||||
import 'dayjs/locale/vi'
|
||||
import 'dayjs/locale/es'
|
||||
import 'dayjs/locale/hi'
|
||||
import 'dayjs/locale/ar'
|
||||
|
||||
const manager = localStorageColorSchemeManager({ key: 'mantine-color-scheme' })
|
||||
|
||||
export function ThemeProvider({
|
||||
children,
|
||||
locale = 'en',
|
||||
}: {
|
||||
children: React.ReactNode
|
||||
initial?: 'light' | 'dark' | 'auto'
|
||||
locale?: string
|
||||
}) {
|
||||
const dateLocale = DAYJS_LOCALE_MAP[locale] || 'en'
|
||||
|
||||
return (
|
||||
<MantineProvider
|
||||
theme={theme}
|
||||
defaultColorScheme="light"
|
||||
colorSchemeManager={manager}
|
||||
>
|
||||
<DatesProvider settings={{ locale: dateLocale }}>
|
||||
{children}
|
||||
</DatesProvider>
|
||||
</MantineProvider>
|
||||
)
|
||||
}
|
||||
21
packages/components/tsconfig.json
Normal file
21
packages/components/tsconfig.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"extends": "../../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"module": "esnext",
|
||||
"moduleResolution": "bundler",
|
||||
"types": ["node"],
|
||||
"composite": true,
|
||||
"declaration": true,
|
||||
"noEmit": false,
|
||||
"skipLibCheck": true,
|
||||
"rootDir": ".",
|
||||
"outDir": "dist",
|
||||
"jsx": "react-jsx"
|
||||
},
|
||||
"references": [
|
||||
{"path": "../mantine-theme"}
|
||||
],
|
||||
"files": [],
|
||||
"include": ["**/*.ts", "**/*.tsx", "**/*.d.ts"],
|
||||
"exclude": ["dist/**/*", "lib/**/*"]
|
||||
}
|
||||
Reference in New Issue
Block a user