-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathtutorialpage.js
More file actions
126 lines (117 loc) 路 3.36 KB
/
Copy pathtutorialpage.js
File metadata and controls
126 lines (117 loc) 路 3.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
import { useState } from "react";
import CommonComponent from "../commonsection/common";
import PopularVideosCollection from "./popular_videos";
import SocialMediaFlutterApp from "./social_media_flutter_app";
const TutorialComponent = () => {
return (
<CommonComponent>
<TutorialPage />
</CommonComponent>
);
};
const tutorialNameCollection = [
"Flutter Social Media Chat App",
// "Popular Videos"
];
const TutorialPage = () => {
return (
<div className="container">
<h2
className="text-center mt-3"
data-aos="zoom-in"
data-aos-duration="1000"
>
Tutorial
</h2>
<div
className="card w-100 tutorial-card mb-4 mx-md-3 list-group mt-5 aos-removal-class rounded-3"
data-aos="fade-up"
data-aos-duration="1000"
data-aos-delay="800"
>
<TutorialCollection />
</div>
</div>
);
};
const TutorialCollection = () => {
const [currIndex, setcurrIndex] = useState(0);
const getCardActivationStatusNavItem = (index) => {
if (index === currIndex) {
return "nav-link active fw-bold mx-1";
} else {
return "nav-link bg-trnsparent fw-bold";
}
};
const getCardActivationStatusTabPane = (index) => {
if (index === currIndex) {
return "tab-pane active";
} else {
return "tab-pane";
}
};
return (
<>
<div className="card-header">
<ul
className="nav nav-tabs card-header-tabs pb-1 w-100 text-center d-flex flex-wrap justify-content-center align-items-center"
id="bologna-list"
role="tablist"
>
{Object.keys(tutorialNameCollection).map((key, index) => {
return (
<li className="nav-item" onClick={() => setcurrIndex(index)} key={index}>
<a
className={getCardActivationStatusNavItem(index)}
aria-current="true"
href="#domain-navigation-tab"
style={{
background:
index === currIndex
? "linear-gradient(180deg, #538ffb, #538ffb)"
: "",
border: "none",
borderRadius: "50px",
color: index === currIndex ? "#fff" : "rgba(0,0,0,0.4)",
transition: "all 0.5s"
}}
>
{tutorialNameCollection[key]}
</a>
</li>
);
})}
</ul>
</div>
<div className="card-body">
{Object.keys(tutorialNameCollection).map((key, index) => {
return (
<div className="tab-content mt-3" id="myTabContent" key={index}>
<div
className={getCardActivationStatusTabPane(index)}
id="description"
role="tabpanel"
aria-labelledby={index}
>
<div className="card-text">
<Decider index={index} />
</div>
</div>
</div>
);
})}
</div>
</>
);
};
const Decider = ({ index }) => {
switch (index) {
case 0:
return <SocialMediaFlutterApp />;
case 1:
return <PopularVideosCollection />;
default:
return <div className="fs-5">Coming Soon</div>;
}
};
export default TutorialComponent;