Aller au contenu

ConfigProvider

Fournisseur de contexte pour la configuration globale. Permet une taille de composants cohérente, la localisation, le support RTL et la gestion des conteneurs de portails dans toute votre application.

import { ConfigProvider, useConfig } from 'asterui'

Enveloppez votre application avec ConfigProvider pour définir les valeurs par défaut globales :

main.tsx
import { ConfigProvider } from 'asterui'
createRoot(document.getElementById('root')!).render(
<ConfigProvider componentSize="sm">
<App />
</ConfigProvider>
)

Définissez une taille globale pour tous les composants. Les composants individuels peuvent toujours la remplacer :

function App() {
const [size, setSize] = useState<'xs' | 'sm' | 'md' | 'lg' | 'xl'>('md')
return (
<ConfigProvider componentSize={size}>
<div className="space-y-4">
<select value={size} onChange={(e) => setSize(e.target.value)}>
<option value="xs">Extra Small</option>
<option value="sm">Small</option>
<option value="md">Medium</option>
<option value="lg">Large</option>
<option value="xl">Extra Large</option>
</select>
{/* Tous ces composants utiliseront la taille globale */}
<Button>Button</Button>
<Input placeholder="Input" />
<Pagination total={100} />
</div>
</ConfigProvider>
)
}

Personnalisez les chaînes de paramètres régionaux pour l’internationalisation :

import { ConfigProvider } from 'asterui'
import { zhCN } from 'asterui/locale'
// Utiliser un paramètre régional intégré
<ConfigProvider locale={zhCN}>
<App />
</ConfigProvider>
// Ou fournir des chaînes personnalisées
<ConfigProvider locale={{ Empty: { description: 'Keine Daten' } }}>
<Empty />
</ConfigProvider>

Activer la mise en page de droite à gauche pour des langues comme l’arabe et l’hébreu :

<ConfigProvider direction="rtl">
<div dir="rtl">
<Button>Premier</Button>
<Button>Deuxième</Button>
<Button>Troisième</Button>
</div>
</ConfigProvider>

Les composants ConfigProvider imbriqués héritent et remplacent les paramètres parents :

<ConfigProvider componentSize="lg">
<Button>Gros bouton</Button>
<ConfigProvider componentSize="sm">
{/* Cette section utilise une petite taille */}
<Button>Petit bouton</Button>
</ConfigProvider>
</ConfigProvider>

Spécifiez où les modales, menus déroulants et autres portails sont rendus :

<ConfigProvider getPopupContainer={() => document.getElementById('modal-root')!}>
<Modal open={isOpen}>
{/* Rendu à l'intérieur de #modal-root au lieu de document.body */}
</Modal>
</ConfigProvider>
PropriétéTypeDéfautDescription
localeLocaleenUSObjet de configuration des paramètres régionaux.
componentSize'xs' | 'sm' | 'md' | 'lg' | 'xl''md'Taille par défaut pour tous les composants.
direction'ltr' | 'rtl''ltr'Direction de la mise en page.
prefixClsstring-Préfixe pour les classes CSS.
getPopupContainer(triggerNode?: HTMLElement) => HTMLElement-Conteneur par défaut pour les portails.
childrenReact.ReactNode-Composants enfants.
PropriétéTypeDescription
localeLocaleConfiguration des paramètres régionaux actuels.
componentSizestringTaille globale actuelle des composants.
direction'ltr' | 'rtl'Direction de mise en page actuelle.
getPopupContainerfunctionFonction de conteneur de portails actuelle.
import { useConfig } from 'asterui'
function MyComponent() {
const { locale, componentSize, direction } = useConfig()
// Utiliser les valeurs de configuration...
}

Accéder uniquement aux paramètres régionaux actuels :

import { useLocale } from 'asterui'
function MyComponent() {
const locale = useLocale()
// Utiliser les chaînes de paramètres régionaux...
}

Importer les paramètres régionaux depuis asterui/locale :

import { zhCN, jaJP, koKR, deDE, frFR, esES, ptBR, enGB, enCA } from 'asterui/locale'
Paramètre régionalLangue
enUSAnglais (États-Unis) - par défaut
enGBAnglais (Royaume-Uni)
enCAAnglais (Canada)
zhCNChinois (simplifié)
jaJPJaponais
koKRCoréen
deDEAllemand
frFRFrançais
esESEspagnol
ptBRPortugais (Brésil)
  • Utilisez direction="rtl" pour les langues de droite à gauche comme l’arabe et l’hébreu
  • Les paramètres régionaux affectent le texte du lecteur d’écran dans les composants comme Empty, Pagination, etc.
  • Les fournisseurs imbriqués permettent à différentes régions de votre application d’avoir des configurations différentes