Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 52699df

Browse files
committed
Finished Star Lang Chart UI
1 parent 0011c2c commit 52699df

File tree

2 files changed

+95
-10
lines changed

2 files changed

+95
-10
lines changed

‎sample-app/components/Charts.js‎

Lines changed: 93 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,11 @@ import { langColors } from "../util";
1515
const 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} /> */}

‎sample-app/components/charts/BarChartComp.js‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,10 @@ const BarChartComp = ({ config }) => {
4242
// );
4343
return (
4444
<BarChart width={width} height={height} data={data} margin={margin}>
45-
<XAxis dataKey={XKey} />
45+
<XAxis dataKey={XKey} />
4646
<YAxis dataKey={YKey} />
4747
<Tooltip cursor={{ fill: "transparent" }} />
48-
<Bar dataKey={YKey} fill={BarTPColor}>
48+
<Bar dataKey={YKey}>
4949
{data &&
5050
data.map((entry, index) => (
5151
<Cell key={`cell-${index}`} fill={colors[index % colors.length]} />

0 commit comments

Comments
 (0)