@@ -15,10 +15,11 @@ import { langColors } from "../util";
1515const Charts = ( ) => {
1616 const ChartWidth = 300 ;
1717 const ChartHeight = 300 ;
18- const [ starChartData , setStarChartData ] = useState ( [ { } ] ) ;
18+ // const [starChartData, setStarChartData] = useState([{}]);
1919 const [ starChartConfig , setStarChartConfig ] = useState ( { } ) ;
20- const [ langChartData , setLangChartData ] = useState ( [ { } ] ) ;
20+ // const [langChartData, setLangChartData] = useState([{}]);
2121 const [ langChartConfig , setLangChartConfig ] = useState ( { } ) ;
22+ const [ langStarChartConfig , setLangStarChartConfig ] = useState ( { } ) ;
2223
2324 const repoData = mockRepoData ;
2425 const initStarChart = ( ) => {
@@ -36,7 +37,7 @@ const Charts = () => {
3637 }
3738
3839 console . log ( data ) ;
39- setStarChartData ( data ) ;
40+ // setStarChartData(data);
4041
4142 if ( data . length > 0 ) {
4243 const width = ChartWidth ;
@@ -145,7 +146,7 @@ const Charts = () => {
145146
146147 const initLangChart = ( ) => {
147148 const langData = getLangData ( repoData ) ;
148- setLangChartData ( langData ) ;
149+ // setLangChartData(langData);
149150 const labels = langData . map ( ( lang ) => lang . label ) ;
150151 const data = langData ;
151152 const sectorColors = colorsArr ( langData ) ;
@@ -186,12 +187,95 @@ const Charts = () => {
186187 }
187188 } ;
188189
190+ // Create Stars per language chart
191+ // const [thirdChartData, setThirdChartData] = useState(null);
192+ const initLangStarChart = ( ) => {
193+ // const ctx = document.getElementById("thirdChart");
194+ const filteredRepos = repoData . filter (
195+ ( repo ) => ! repo . fork && repo . stargazers_count > 0
196+ ) ;
197+ const uniqueLangs = new Set ( filteredRepos . map ( ( repo ) => repo . language ) ) ;
198+ const labels = Array . from ( uniqueLangs . values ( ) ) . filter ( ( l ) => l ) ;
199+ const data = labels . map ( ( lang ) => {
200+ const repos = filteredRepos . filter ( ( repo ) => repo . language === lang ) ;
201+ const starsArr = repos . map ( ( r ) => r . stargazers_count ) ;
202+ const starSum = starsArr . reduce ( ( a , b ) => a + b , 0 ) ;
203+ return { lang : lang , repos : starSum } ;
204+ } ) ;
205+
206+ // const langData = getLangData(repoData);
207+ // setLangChartData(langData);
208+ // const labels = langData.map((lang) => lang.label);
209+ // const data = langData;
210+ // const sectorColors = colorsArr(langData);
211+ // setLangChartData(data);
212+
213+ // setThirdChartData(data);
214+
215+ if ( data . length > 0 ) {
216+ console . log ( "third chart data:" , data ) ;
217+ const borderColor = labels . map ( ( label ) => {
218+ if ( langColors [ label . toLowerCase ( ) ] !== undefined ) {
219+ return langColors [ label . toLowerCase ( ) ] ;
220+ } else {
221+ return getRandomColor ( ) ;
222+ }
223+ } ) ;
224+ const sectorColors = borderColor . map ( ( color ) => `${ color } FF` ) ;
225+ const width = ChartWidth ;
226+ const height = ChartHeight ;
227+ const margin = {
228+ top : 0 ,
229+ right : 0 ,
230+ left : 0 ,
231+ bottom : 0 ,
232+ } ;
233+
234+ const cx = 150 ;
235+ const cy = 150 ;
236+ const innerRadius = 70 ;
237+ const outerRadius = 120 ;
238+ const paddingAngle = 0.5 ;
239+ const dataKey = "repos" ;
240+ const pieChartConfig = {
241+ width,
242+ height,
243+ margin,
244+ cx,
245+ cy,
246+ innerRadius,
247+ outerRadius,
248+ paddingAngle,
249+ data,
250+ dataKey,
251+ sectorColors,
252+ } ;
253+ // console.log("langChartConfig - ", pieChartConfig);
254+ setLangStarChartConfig ( pieChartConfig ) ;
255+ console . log ( "langChartConfig - " , pieChartConfig ) ;
256+ // console.log(backgroundColor)
257+ // const config = {
258+ // ctx,
259+ // chartType,
260+ // labels,
261+ // data,
262+ // backgroundColor,
263+ // borderColor,
264+ // axes,
265+ // legend,
266+ // };
267+ // console.log(config);
268+ // buildChart(config);
269+ }
270+ } ;
271+
189272 useEffect ( ( ) => {
190273 if ( repoData . length ) {
191274 initStarChart ( ) ;
192275 initLangChart ( ) ;
193- console . log ( starChartData ) ;
194- console . log ( langChartData ) ;
276+ initLangStarChart ( ) ;
277+ // console.log(starChartData);
278+ // console.log(langChartData);
195279 // initThirdChart();
196280 }
197281 } , [ ] ) ;
@@ -208,8 +292,9 @@ const Charts = () => {
208292 return false ;
209293 } ;
210294
211- const langChartError = errorHandler ( langChartConfig ) ;
212295 const starChartError = errorHandler ( starChartConfig ) ;
296+ const langChartError = errorHandler ( langChartConfig ) ;
297+ const langStarChartError = errorHandler ( langStarChartConfig ) ;
213298
214299 return (
215300 < Section dark >
@@ -248,7 +333,7 @@ const Charts = () => {
248333 < div className = "chart-container" >
249334 { /* <PieChartComp /> */ }
250335 { langChartError && < p > Nothing to see here!</ p > }
251- < PieChartComp config = { langChartConfig } />
336+ < PieChartComp config = { langStarChartConfig } />
252337
253338 { /* {langChartError && <p>Nothing to see here!</p>} */ }
254339 { /* <canvas id="langChart" width={chartSize} height={chartSize} /> */ }
0 commit comments