Open Janpot opened 2 months ago
Probably already possible with a custom pagination and the TablePagination component ... the prop labelDisplayedRows
looks like it would do the trick here
But this seems like a very heavy customization for such a little thing!
@mui/xgrid WDYT?
Looking at the code, it seems that you have a labelDisplayedRows
locale key on the MuiTablePagination
locale entry of the grid (those nested locale entry are super hard to understand IMHO).
This would be nice to have an example if it does work And if it doesn't and you do need to create a custom pagination component, then I fully agree that we could improve the DX :+1:
Oh yes, that actually works!
FYI: numbers were artificially created to test this ((10000).toLocaleString('en')
)
Thanks @flaviendelangle for this tip! 👍🏼
slotProps={{
pagination: { labelDisplayedRows: ({ from, to, count }) => `${from.toLocaleString('en')}-${to.toLocaleString('en')}`},
}}
:warning: This issue has been closed. If you have a similar problem but not exactly the same, please open a new issue. Now, if you have additional information related to this issue or things that could help future readers, feel free to leave a comment.
@Janpot: How did we do? Your experience with our support team matters to us. If you have a moment, please share your thoughts in this short Support Satisfaction survey.
@michelengelen do you think it would justify a doc example?
@michelengelen do you think it would justify a doc example?
Probably ... its not easy to find that feature otherwise
I'll reopen and add it to the recipe umbrella!
its not easy to find that feature otherwise
It would be nice to have some kind of API pages for the slots, but that's a big initiative and not specific to this prop in particular.
Respecting the decision ofcourse but gonna play a bit advocate of the devil here. To me it seems strange that the localeText
is not formatting the numbers it interpollates by default. Imagining there was a text with a date, we wouldn't just stringify that date neither, we'd format it to the user locale. It feels a bit like this API is only doing half its job this way. I find it hard to imagine that not formatting the numbers would be part of more than 5% of use-cases out there.
Related issues #7457
Right, SSR, good concern 👍
Yeah, I forget that one every time :laughing:
The Base UI team is experiencing similar issues with the NumberInput
, maybe we will be able to use the same approach in the end.
🤔 Actually, if the texts are already localized, why can't the localization of the numbers follow the text? If there is an actual SSR problem, shouldn't it then be already present in the current localization of the texts?
This looks like a sub-issue of the parent one: https://github.com/mui/material-ui/issues/24495. I proposed a possible solution a while back: https://github.com/mui/material-ui/issues/24495#issuecomment-762829673.
Side observations:
I would expect:
`${visibleCount.toLocaleString('fr-FR')} sur ${totalCount.toLocaleString('fr-FR')}`,
e.g. if Pennylane adopts our data grid, it will be wrong. My default OS language is English (so what toLocaleString
will output), but I might set the language picker in their UI to French so I can take screenshots for the accountant. The data grid would show the number assuming the English locale, not the French one ❌.
Summary
Live demo https://stackblitz.com/edit/react-jxqb4n?file=Demo.tsx
The pagination control looks like:
Would it be possible to format these numbers? A thousands separator would make them more readable. In practice this is mostly going to be interesting for the total count, but once you start formatting, you may as well do it for all of these numbers.
Examples
Motivation
No response
Search keywords: pagination format number