Skip to content

Commit 8d3a12d

Browse files
committed
Translation in french part7c line 374
1 parent a9dae83 commit 8d3a12d

File tree

1 file changed

+125
-0
lines changed

1 file changed

+125
-0
lines changed

src/content/7/fr/part7c.md

Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,4 +250,129 @@ Installez la bibliothèque avec la commande
250250
npm install @mui/material @emotion/react @emotion/styled
251251
```
252252

253+
Maintenant, utilisons MaterialUI pour apporter les mêmes modifications au code que nous avons faites précédemment avec Bootstrap.
254+
255+
Rendez le contenu de toute l'application dans un [Container](https://mui.com/components/container/):
256+
257+
```js
258+
import { Container } from '@mui/material'
259+
260+
const App = () => {
261+
// ...
262+
return (
263+
<Container>
264+
// ...
265+
</Container>
266+
)
267+
}
268+
```
269+
270+
#### Table
271+
272+
Commençons par le composant <i>Notes</i>. Nous allons rendre la liste des notes sous forme de [table](https://mui.com/material-ui/react-table/#simple-table):
273+
274+
```js
275+
const Notes = ({ notes }) => (
276+
<div>
277+
<h2>Notes</h2>
278+
279+
<TableContainer component={Paper}>
280+
<Table>
281+
<TableBody>
282+
{notes.map(note => (
283+
<TableRow key={note.id}>
284+
<TableCell>
285+
<Link to={`/notes/${note.id}`}>{note.content}</Link>
286+
</TableCell>
287+
<TableCell>
288+
{note.user}
289+
</TableCell>
290+
</TableRow>
291+
))}
292+
</TableBody>
293+
</Table>
294+
</TableContainer>
295+
</div>
296+
)
297+
```
298+
299+
La table ressemble à cela:
300+
301+
![table de notes du navigateur MaterialUI](../../images/7/63eb.png)
302+
303+
Une caractéristique moins agréable de Material UI est que chaque composant doit être importé séparément. La liste des importations pour la page des notes est assez longue:
304+
305+
```js
306+
import {
307+
Container,
308+
Table,
309+
TableBody,
310+
TableCell,
311+
TableContainer,
312+
TableRow,
313+
Paper,
314+
} from '@mui/material'
315+
```
316+
317+
#### Formulaire
318+
319+
Ensuite, améliorons le formulaire de connexion dans la vue <i>Login</i> en utilisant les composants [TextField](https://mui.com/material-ui/react-text-field/) et [Button](https://mui.com/material-ui/api/button/):
320+
321+
```js
322+
const Login = (props) => {
323+
const navigate = useNavigate()
324+
325+
const onSubmit = (event) => {
326+
event.preventDefault()
327+
props.onLogin('mluukkai')
328+
navigate('/')
329+
}
330+
331+
return (
332+
<div>
333+
<h2>login</h2>
334+
<form onSubmit={onSubmit}>
335+
<div>
336+
<TextField label="username" />
337+
</div>
338+
<div>
339+
<TextField label="password" type='password' />
340+
</div>
341+
<div>
342+
<Button variant="contained" color="primary" type="submit">
343+
login
344+
</Button>
345+
</div>
346+
</form>
347+
</div>
348+
)
349+
}
350+
```
351+
352+
Le résultat est:
353+
354+
![formulaire de connexion de l'application de notes MaterialUI dans le navigateur](../../images/7/64ea.png)
355+
356+
MaterialUI, contrairement à Bootstrap, ne fournit pas de composant pour le formulaire lui-même. Le formulaire ici est un élément HTML [form](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form) ordinaire.
357+
358+
N'oubliez pas d'importer tous les composants utilisés dans le formulaire.
359+
360+
#### Notification
361+
362+
La notification affichée lors de la connexion peut être réalisée à l'aide du composant [Alert](https://mui.com/material-ui/react-alert/) qui est assez similaire au composant équivalent de Bootstrap:
363+
364+
```js
365+
<div>
366+
// highlight-start
367+
{(message &&
368+
<Alert severity="success">
369+
{message}
370+
</Alert>
371+
)}
372+
// highlight-end
373+
</div>
374+
```
375+
376+
377+
253378
</div>

0 commit comments

Comments
 (0)