Skip to content

Commit a63e16f

Browse files
authored
Merge pull request #214 from ctfguide-tech/dev
feat: support for video's on writeups on profile
2 parents 0ce1597 + ef0a244 commit a63e16f

File tree

1 file changed

+21
-2
lines changed

1 file changed

+21
-2
lines changed

src/components/profile/v2/Writeups.jsx

+21-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,16 @@ const Writeups = ({ user }) => {
88
const [loading, setLoading] = useState(true);
99
const [error, setError] = useState(null);
1010
const [selectedWriteup, setSelectedWriteup] = useState(null);
11+
1112
const [isModalOpen, setIsModalOpen] = useState(false);
13+
14+
15+
const getEmbedUrl = (url) => {
16+
const videoId = url.split('v=')[1];
17+
const ampersandPosition = videoId.indexOf('&');
18+
return ampersandPosition !== -1 ? videoId.substring(0, ampersandPosition) : videoId;
19+
};
20+
1221

1322
useEffect(() => {
1423
const fetchWriteups = async () => {
@@ -20,6 +29,8 @@ const Writeups = ({ user }) => {
2029
try {
2130
const response = await request(`${process.env.NEXT_PUBLIC_API_URL}/users/${user.username}/writeups`, 'GET', null);
2231
setWriteups(response);
32+
console.log("==========")
33+
console.log(response)
2334
} catch (err) {
2435
setError(err.message);
2536
} finally {
@@ -31,8 +42,10 @@ const Writeups = ({ user }) => {
3142
}, [user]);
3243

3344
const openModal = (writeup) => {
34-
setSelectedWriteup(writeup);
35-
setIsModalOpen(true);
45+
if(window.confirm("Are you sure you want to view this writeup? You will not earn points for this challenge.")) {
46+
setSelectedWriteup(writeup);
47+
setIsModalOpen(true);
48+
}
3649
};
3750

3851
const closeModal = () => {
@@ -90,6 +103,12 @@ const Writeups = ({ user }) => {
90103
Authored by <span onClick={() => window.location.href = `../../users/${user.username}`} className='text-blue-500 cursor-pointer'>{user.username}</span> for challenge <span onClick={() => window.location.href = `../../challenges/${selectedWriteup.challengeId}`} className='text-yellow-500 cursor-pointer'>{selectedWriteup.challenge.title}</span>.
91104
</p>
92105
<div className="mt-2">
106+
107+
{selectedWriteup.hasVideo &&
108+
<div className='text-white rounded-lg mb-4'>
109+
<iframe width="100%" height="415" src={`https://www.youtube.com/embed/${getEmbedUrl(selectedWriteup.videoUrl)}`} frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen></iframe>
110+
</div>
111+
}
93112
<MarkdownViewer content={selectedWriteup.content} />
94113
</div>
95114

0 commit comments

Comments
 (0)