← marzneshin
/
dashboard/src/features/users/components/widgets/users-stats-widget/legend.tsx
/
blame
https://dev.kronoz.win/r/marzneshin.git
| 1 | e5dcd82 | Dawsh | 2y ago | import { FC } from 'react' |
| 2 | e5dcd82 | Dawsh | 2y ago | import { scaleOrdinal } from '@visx/scale'; |
| 3 | e5dcd82 | Dawsh | 2y ago | import { LegendOrdinal, LegendItem, LegendLabel } from '@visx/legend'; |
| 4 | e5dcd82 | Dawsh | 2y ago | |
| 5 | e5dcd82 | Dawsh | 2y ago | const legendGlyphSize = 15; |
| 6 | 44d5623 | Mardin | 2y ago | |
| 7 | e5dcd82 | Dawsh | 2y ago | const ordinalColorScale = scaleOrdinal({ |
| 8 | e5dcd82 | Dawsh | 2y ago | domain: ["Active", "Online", "Expired", "On Hold", "Limited"], |
| 9 | 44d5623 | Mardin | 2y ago | range: ['#3b82f6', '#10b981', '#4b5563', '#A855F7', '#ef4444'], |
| 10 | e5dcd82 | Dawsh | 2y ago | }); |
| 11 | e5dcd82 | Dawsh | 2y ago | |
| 12 | e5dcd82 | Dawsh | 2y ago | export const UsersStatsLegend: FC = () => { |
| 13 | e5dcd82 | Dawsh | 2y ago | return ( |
| 14 | e5dcd82 | Dawsh | 2y ago | <LegendOrdinal scale={ordinalColorScale}> |
| 15 | e5dcd82 | Dawsh | 2y ago | {(labels) => ( |
| 16 | 44d5623 | Mardin | 2y ago | <div className="border border-solid border-[rgba(255, 255, 255, 0.3)] rounded-lg flex flex-row flex-wrap md:flex-col h-full p-3"> |
| 17 | e5dcd82 | Dawsh | 2y ago | {labels.map((label, i) => ( |
| 18 | e5dcd82 | Dawsh | 2y ago | <LegendItem |
| 19 | e5dcd82 | Dawsh | 2y ago | key={`legend-quantile-${i}`} |
| 20 | e5dcd82 | Dawsh | 2y ago | margin="0 5px" |
| 21 | e5dcd82 | Dawsh | 2y ago | > |
| 22 | e5dcd82 | Dawsh | 2y ago | <svg width={legendGlyphSize} height={legendGlyphSize}> |
| 23 | e5dcd82 | Dawsh | 2y ago | <circle |
| 24 | e5dcd82 | Dawsh | 2y ago | className="rounded-full" |
| 25 | e5dcd82 | Dawsh | 2y ago | fill={label.value} |
| 26 | e5dcd82 | Dawsh | 2y ago | r={legendGlyphSize / 2} |
| 27 | e5dcd82 | Dawsh | 2y ago | cx={legendGlyphSize / 2} |
| 28 | e5dcd82 | Dawsh | 2y ago | cy={legendGlyphSize / 2} |
| 29 | e5dcd82 | Dawsh | 2y ago | /> |
| 30 | e5dcd82 | Dawsh | 2y ago | </svg> |
| 31 | e5dcd82 | Dawsh | 2y ago | <LegendLabel align="left" margin="0 0 0 4px"> |
| 32 | e5dcd82 | Dawsh | 2y ago | {label.text} |
| 33 | e5dcd82 | Dawsh | 2y ago | </LegendLabel> |
| 34 | e5dcd82 | Dawsh | 2y ago | </LegendItem> |
| 35 | e5dcd82 | Dawsh | 2y ago | ))} |
| 36 | e5dcd82 | Dawsh | 2y ago | </div> |
| 37 | e5dcd82 | Dawsh | 2y ago | )} |
| 38 | e5dcd82 | Dawsh | 2y ago | </LegendOrdinal> |
| 39 | e5dcd82 | Dawsh | 2y ago | ) |
| 40 | e5dcd82 | Dawsh | 2y ago | } |