2023-08-07 10:03:12 +03:00
|
|
|
|
|
|
|
|
|
|
|
import { TamaguiProvider } from 'tamagui'
|
2023-08-03 09:20:54 +03:00
|
|
|
import './App.css'
|
2023-08-07 10:03:12 +03:00
|
|
|
import { Provider as StatusProvider } from '@status-im/components'
|
|
|
|
import { ResponsivePie } from '@nivo/pie'
|
2023-08-04 09:43:07 +03:00
|
|
|
|
|
|
|
import config from '../tamagui.config'
|
2023-08-07 10:03:12 +03:00
|
|
|
const data = [
|
|
|
|
{
|
|
|
|
"id": "php",
|
|
|
|
"label": "php",
|
|
|
|
"value": 127,
|
|
|
|
"color": "hsl(236, 70%, 50%)"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"id": "javascript",
|
|
|
|
"label": "javascript",
|
|
|
|
"value": 540,
|
|
|
|
"color": "hsl(249, 70%, 50%)"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"id": "java",
|
|
|
|
"label": "java",
|
|
|
|
"value": 240,
|
|
|
|
"color": "hsl(72, 70%, 50%)"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"id": "python",
|
|
|
|
"label": "python",
|
|
|
|
"value": 435,
|
|
|
|
"color": "hsl(122, 70%, 50%)"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"id": "scala",
|
|
|
|
"label": "scala",
|
|
|
|
"value": 197,
|
|
|
|
"color": "hsl(186, 70%, 50%)"
|
2023-08-03 22:26:40 +03:00
|
|
|
}
|
2023-08-07 10:03:12 +03:00
|
|
|
]
|
|
|
|
interface Data {
|
|
|
|
id: string;
|
|
|
|
label: string;
|
|
|
|
value: number;
|
|
|
|
color: string;
|
|
|
|
}
|
|
|
|
interface MyPieProps {
|
|
|
|
data: Data[];
|
2023-08-03 22:26:40 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2023-08-07 10:03:12 +03:00
|
|
|
const MyResponsivePie = (props:MyPieProps) => {
|
2023-08-03 22:26:40 +03:00
|
|
|
|
2023-08-07 10:03:12 +03:00
|
|
|
const {data}= props;
|
|
|
|
return(
|
|
|
|
<>
|
|
|
|
<ResponsivePie
|
|
|
|
data={data}
|
|
|
|
margin={{ top: 40, right: 80, bottom: 80, left: 80 }}
|
|
|
|
innerRadius={0.5}
|
|
|
|
padAngle={0.7}
|
|
|
|
cornerRadius={3}
|
|
|
|
activeOuterRadiusOffset={8}
|
|
|
|
// borderWidth={1}
|
|
|
|
// borderColor={{
|
|
|
|
// from: 'color',
|
|
|
|
// modifiers: [
|
|
|
|
// [
|
|
|
|
// 'darker',
|
|
|
|
// 0.2
|
|
|
|
// ]
|
|
|
|
// ]
|
|
|
|
// }}
|
|
|
|
// arcLinkLabelsSkipAngle={10}
|
|
|
|
// arcLinkLabelsTextColor="#333333"
|
|
|
|
// arcLinkLabelsThickness={2}
|
|
|
|
// arcLinkLabelsColor={{ from: 'color' }}
|
|
|
|
// arcLabelsSkipAngle={10}
|
|
|
|
// arcLabelsTextColor={{
|
|
|
|
// from: 'color',
|
|
|
|
// modifiers: [
|
|
|
|
// [
|
|
|
|
// 'darker',
|
|
|
|
// 2
|
|
|
|
// ]
|
|
|
|
// ]
|
|
|
|
// }}
|
|
|
|
// defs={[
|
|
|
|
// {
|
|
|
|
// id: 'dots',
|
|
|
|
// type: 'patternDots',
|
|
|
|
// background: 'inherit',
|
|
|
|
// color: 'rgba(255, 255, 255, 0.3)',
|
|
|
|
// size: 4,
|
|
|
|
// padding: 1,
|
|
|
|
// stagger: true
|
|
|
|
// },
|
|
|
|
// {
|
|
|
|
// id: 'lines',
|
|
|
|
// type: 'patternLines',
|
|
|
|
// background: 'inherit',
|
|
|
|
// color: 'rgba(255, 255, 255, 0.3)',
|
|
|
|
// rotation: -45,
|
|
|
|
// lineWidth: 6,
|
|
|
|
// spacing: 10
|
|
|
|
// }
|
|
|
|
// ]}
|
|
|
|
// fill={[
|
|
|
|
// {
|
|
|
|
// match: {
|
|
|
|
// id: 'ruby'
|
|
|
|
// },
|
|
|
|
// id: 'dots'
|
|
|
|
// },
|
|
|
|
// {
|
|
|
|
// match: {
|
|
|
|
// id: 'c'
|
|
|
|
// },
|
|
|
|
// id: 'dots'
|
|
|
|
// },
|
|
|
|
// {
|
|
|
|
// match: {
|
|
|
|
// id: 'go'
|
|
|
|
// },
|
|
|
|
// id: 'dots'
|
|
|
|
// },
|
|
|
|
// {
|
|
|
|
// match: {
|
|
|
|
// id: 'python'
|
|
|
|
// },
|
|
|
|
// id: 'dots'
|
|
|
|
// },
|
|
|
|
// {
|
|
|
|
// match: {
|
|
|
|
// id: 'scala'
|
|
|
|
// },
|
|
|
|
// id: 'lines'
|
|
|
|
// },
|
|
|
|
// {
|
|
|
|
// match: {
|
|
|
|
// id: 'lisp'
|
|
|
|
// },
|
|
|
|
// id: 'lines'
|
|
|
|
// },
|
|
|
|
// {
|
|
|
|
// match: {
|
|
|
|
// id: 'elixir'
|
|
|
|
// },
|
|
|
|
// id: 'lines'
|
|
|
|
// },
|
|
|
|
// {
|
|
|
|
// match: {
|
|
|
|
// id: 'javascript'
|
|
|
|
// },
|
|
|
|
// id: 'lines'
|
|
|
|
// }
|
|
|
|
// ]}
|
|
|
|
// legends={[
|
|
|
|
// {
|
|
|
|
// anchor: 'bottom',
|
|
|
|
// direction: 'row',
|
|
|
|
// justify: false,
|
|
|
|
// translateX: 0,
|
|
|
|
// translateY: 56,
|
|
|
|
// itemsSpacing: 0,
|
|
|
|
// itemWidth: 100,
|
|
|
|
// itemHeight: 18,
|
|
|
|
// itemTextColor: '#999',
|
|
|
|
// itemDirection: 'left-to-right',
|
|
|
|
// itemOpacity: 1,
|
|
|
|
// symbolSize: 18,
|
|
|
|
// symbolShape: 'circle',
|
|
|
|
// effects: [
|
|
|
|
// {
|
|
|
|
// on: 'hover',
|
|
|
|
// style: {
|
|
|
|
// itemTextColor: '#000'
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// ]
|
|
|
|
// }
|
|
|
|
// ]}
|
2023-08-03 22:26:40 +03:00
|
|
|
/>
|
2023-08-07 10:03:12 +03:00
|
|
|
</>)
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2023-08-03 22:26:40 +03:00
|
|
|
function App() {
|
2023-08-07 10:03:12 +03:00
|
|
|
|
2023-08-03 09:20:54 +03:00
|
|
|
return (
|
2023-08-04 09:43:07 +03:00
|
|
|
<TamaguiProvider config={config}>
|
2023-08-07 10:03:12 +03:00
|
|
|
<StatusProvider >
|
|
|
|
<div style={{height:'504px'}}>
|
|
|
|
|
|
|
|
<MyResponsivePie data={data}/>
|
|
|
|
</div>
|
2023-08-04 12:18:37 +03:00
|
|
|
</StatusProvider>
|
2023-08-04 09:43:07 +03:00
|
|
|
</TamaguiProvider>
|
2023-08-03 09:20:54 +03:00
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
export default App
|