diff --git a/components/CopyToClipboard/CopyToClipboard.tsx b/components/CopyToClipboard/CopyToClipboard.tsx index dac287271..e28002ea7 100644 --- a/components/CopyToClipboard/CopyToClipboard.tsx +++ b/components/CopyToClipboard/CopyToClipboard.tsx @@ -1,5 +1,5 @@ import useCopyToClipboard from 'hooks/useCopyToClipboard' -import React from 'react' +import React, { useState } from 'react' import { FaRegCopy } from 'react-icons/fa' type CopyToClipboardProps = { @@ -8,6 +8,7 @@ type CopyToClipboardProps = { export const CopyToClipboard = ({ url }: CopyToClipboardProps): JSX.Element => { const [copyToClipboard, { success }] = useCopyToClipboard() + const [isHovering, setIsHovering] = useState(false) function handleCopy(e: React.MouseEvent) { e.stopPropagation() @@ -15,16 +16,33 @@ export const CopyToClipboard = ({ url }: CopyToClipboardProps): JSX.Element => { } return ( -
- handleCopy(e)} - /> -

- {success ? 'Copied!' : 'Copy'} -

+
setIsHovering(true)} + onMouseLeave={() => setIsHovering(false)} + > +
+ handleCopy(e)} + /> + {isHovering && ( +

+ {success ? 'Copied!' : 'Copy'} +

+ )} +
) } diff --git a/components/Share/Share.tsx b/components/Share/Share.tsx index 37d491473..349a532f6 100644 --- a/components/Share/Share.tsx +++ b/components/Share/Share.tsx @@ -1,43 +1,65 @@ -import React from 'react'; -import { FaShareAlt } from 'react-icons/fa'; +import React, { useState } from 'react' +import { FaShareAlt } from 'react-icons/fa' type ShareProps = { - url: string; - title: string; -}; + url: string + title: string +} export const Share: React.FC = ({ url, title }) => { + const [showShareOptions, setShowShareOptions] = useState(false) + async function handleShare() { if (navigator.share) { try { await navigator.share({ title: title, url: url, - }); - console.log('Share was successful.'); + }) + console.log('Share was successful.') } catch (error) { - console.error('Error sharing:', error); + console.error('Error sharing:', error) } } else { - console.log('Web Share API not supported on this browser.'); - // Fallback behavior when Web Share API is not supported (e.g., open a new tab with the URL) - window.open(url, '_blank'); + console.log('Web Share API not supported on this browser.') + // Fallback behavior when Web Share API is not supported (e.g., open a new tab with the URL) + window.open(url, '_blank') } } return ( -
+
setShowShareOptions(true)} + onMouseLeave={() => setShowShareOptions(false)} + > -

- Share -

+ {showShareOptions && ( +

+ Share +

+ )}
- ); -}; + ) +} -export default Share; +export default Share diff --git a/database/IOT/raspberry.json b/database/IOT/raspberry.json new file mode 100644 index 000000000..bcb854ad2 --- /dev/null +++ b/database/IOT/raspberry.json @@ -0,0 +1,9 @@ +[ + { + "name": "An Introduction to Raspberry Pi microcontroller", + "description": "The Raspberry Pi is a low-cost, credit-card-sized computer that plugs into a computer monitor or TV, and uses a standard keyboard and mouse. It also enables people of all ages to explore computing and learn programming languages like Scratch and Python.", + "url": "https://www.raspberrypi.org/", + "category": "internet of things", + "subcategory": "raspberrypi" + } +] diff --git a/database/data.ts b/database/data.ts index cbc1de456..92913fe27 100644 --- a/database/data.ts +++ b/database/data.ts @@ -92,7 +92,7 @@ export const sidebarData: ISidebar[] = [ { name: 'Java', url: '/java', resources: DB.java }, { name: 'Kotlin', url: '/kotlin', resources: DB.kotlin }, { name: 'Rust', url: '/rust', resources: DB.Rust }, - {name:'Dart', url: '/dart', resources: DB.dart}, + { name: 'Dart', url: '/dart', resources: DB.dart }, ], }, { @@ -143,7 +143,10 @@ export const sidebarData: ISidebar[] = [ }, { category: 'internet of things', - subcategory: [{ name: 'coursera', url: '/coursera', resources: DB.coursera }], + subcategory: [ + { name: 'coursera', url: '/coursera', resources: DB.coursera }, + { name: 'raspberry', url: '/raspberry', resources: DB.raspberrypi }, + ], }, { category: 'resources', @@ -168,9 +171,17 @@ export const sidebarData: ISidebar[] = [ resources: DB.webDevelopment, }, { name: 'CSS', url: '/css', resources: DB.css }, - { name: 'machine learning', url: '/machine-learning', resources: DB.machineLearning }, + { + name: 'machine learning', + url: '/machine-learning', + resources: DB.machineLearning, + }, { name: 'tensorflow', url: '/tensorflow', resources: DB.tensorflow }, - { name: 'data structures', url: '/data-structures', resources: DB.dataStructures }, + { + name: 'data structures', + url: '/data-structures', + resources: DB.dataStructures, + }, { name: 'Android', url: '/android', resources: DB.android }, { name: 'Web3 & Metaverse', diff --git a/database/frontend/colors.json b/database/frontend/colors.json index 6747cc375..d93c9f9ca 100644 --- a/database/frontend/colors.json +++ b/database/frontend/colors.json @@ -173,5 +173,12 @@ "url": "https://paletton.com/", "category": "frontend", "subcategory": "colors" + }, + { + "name": "ColorSpace", + "description": " An intuitive color palette generator for web designers and creatives. It offers a curated collection of palettes and gradients, allowing users to fine-tune and experiment with a variety of color schemes.", + "url": "https://mycolor.space/", + "category": "frontend", + "subcategory": "colors" } ] \ No newline at end of file diff --git a/database/frontend/images.json b/database/frontend/images.json index 5aaf53873..46cd4f0f8 100644 --- a/database/frontend/images.json +++ b/database/frontend/images.json @@ -138,5 +138,12 @@ "url": "https://www.shutterstock.com/", "category": "frontend", "subcategory": "images" + }, + { + "name": "Dreamstime", + "description": "Dreamstime is the world's largest community for royalty-free photos and stock photography.", + "url": "https://www.dreamstime.com/", + "category": "frontend", + "subcategory": "images" } ] diff --git a/database/frontend/online-code-editors.json b/database/frontend/online-code-editors.json index 925b7ce09..13a597a5a 100644 --- a/database/frontend/online-code-editors.json +++ b/database/frontend/online-code-editors.json @@ -113,9 +113,16 @@ }, { "name": "Interviewbit", - "description": "Everything you need to crack your next tech interview is provided in this website", + "description": "Everything you need to crack your next tech interview is provided on this website", "url": "https://www.interviewbit.com/", "category": "frontend", "subcategory": "online-code-editors" + }, + { + "name": "GeeksforGeeks", + "description": " It is a free online compiler and debugger where programmers and developers can compile and run their code.", + "url": "https://ide.geeksforgeeks.org/", + "category": "frontend", + "subcategory": "online-code-editors" } -] \ No newline at end of file +] diff --git a/database/index.ts b/database/index.ts index a36f4e615..e7e11e769 100644 --- a/database/index.ts +++ b/database/index.ts @@ -33,11 +33,12 @@ export { default as kotlin } from './languages/kotlin.json' export { default as Rust } from './languages/rust.json' export { default as java } from './languages/java.json' export { default as cpp } from './languages/cpp.json' -export {default as dart} from './languages/dart.json' +export { default as dart } from './languages/dart.json' //artificial intelligence export { default as artificialIntelligence } from './artificial_intelligence/artificial-intelligence.json' //internet of things export { default as coursera } from './IOT/coursera.json' +export { default as raspberrypi } from './IOT/raspberry.json' //machine learning export { default as ml } from './machine_learning/machine-learning.json' export { default as dataScience } from './machine_learning/data-science.json' diff --git a/database/open_source/blogs.json b/database/open_source/blogs.json index 7d8c8b662..693b76179 100644 --- a/database/open_source/blogs.json +++ b/database/open_source/blogs.json @@ -33,5 +33,12 @@ "url": "https://os.pradumnasaraf.dev/#/", "category": "open source", "subcategory": "open-source-blogs" + }, + { + "name": "How to contribute in Quine Open source platform", + "description": "Are you a beginner in open source? This site will help you in making your first open-source contribution, teach you about the Quine open source platform, and connect with other open source contributors.", + "url": "https://www.youtube.com/playlist?list=PLnCV5fTAsUgpaLMY_Z8FqPxZ89v-_pcfY", + "category": "open source", + "subcategory": "open-source-blogs" } ] \ No newline at end of file diff --git a/database/other/communities.json b/database/other/communities.json index c5ab093c3..5300d14c7 100644 --- a/database/other/communities.json +++ b/database/other/communities.json @@ -1,7 +1,7 @@ [ { "name": "Google Developer Groups", - "description": "It gives tech professionals the opportunity to learn new skills in a variety of formats. Here, events, workshops, and meet-ups are organised virtually or in-person for people with similar interests in technology.", + "description": "It allows tech professionals to learn new skills in a variety of formats. Here, events, workshops, and meet-ups are organized virtually or in-person for people with similar interests in technology.", "url": "https://gdg.community.dev/", "category": "other", "subcategory": "communities" @@ -26,5 +26,12 @@ "url": "https://devmesh.intel.com/member-programs/intel-student-ambassador-program", "category": "other", "subcategory": "communities" + }, + { + "name": "AI Student Community", + "description": "An online community where students from all across the country learn, share experiences, and leverage their knowledge to create AI-enabled social impact solutions along with inclusively spreading AI awareness.", + "url": "https://aistudent.community/", + "category": "other", + "subcategory": "communities" } ] diff --git a/database/youtube/computer-science.json b/database/youtube/computer-science.json index a6bc40c35..1fda9b6db 100644 --- a/database/youtube/computer-science.json +++ b/database/youtube/computer-science.json @@ -9,7 +9,7 @@ }, { "name": "Jenny's Lectures CS IT", - "description": "Jenny’s Lectures CS IT is a Free YouTube Channel providing Computer Science / Information Technology / Computer-related tutorials, including NET & JRF Coaching Videos, GATE Coaching Videos, UGC NET, NTA NET, JRF, BTech, MTech, Ph.D., tips and other helpful videos for Computer Science / Information Technology students.", + "description": "Jenny’s Lectures CS IT is a Free YouTube Channel providing Computer Science / Information Technology / Computer-related tutorials, including NET & JRF Coaching Videos, GATE Coaching Videos, UGC NET, NTA NET, JRF, BTech, MTech, Ph.D., tips, and other helpful videos for Computer Science / Information Technology students.", "url": "https://www.youtube.com/@JennyslecturesCSIT", "category": "youtube", "subcategory": "computer-science", @@ -17,10 +17,18 @@ }, { "name": "5 Minutes Engineering", - "description": "On 5 Minutes Engineering, you can find EASIEST explanations for all following mentioned subjects in HINDI: Aptitude, Machine Learning, Deep Learning, C, R and Python Programming Languages, Discrete Mathematics (DM), Theory Of Computation (TOC), Artificial Intelligence(AI), Database Management System(DBMS), Software Modeling and Designing(SMD), Software Engineering and Project Planning(SEPM), Data mining and Warehouse(DMW), Data analytics(DA), Mobile Communication(MC), Computer networks(CN), High performance Computing(HPC), Operating system, System programming (SPOS), Internet of things(IOT), and Design and analysis of algorithm(DAA)", + "description": "On 5 Minutes Engineering, you can find EASIEST explanations for all following mentioned subjects in HINDI: Aptitude, Machine Learning, Deep Learning, C, R, and Python Programming Languages, Discrete Mathematics (DM), Theory Of Computation (TOC), Artificial Intelligence(AI), Database Management System(DBMS), Software Modeling and Designing(SMD), Software Engineering and Project Planning(SEPM), Data mining and Warehouse(DMW), Data analytics(DA), Mobile Communication(MC), Computer networks(CN), High performance Computing(HPC), Operating system, System programming (SPOS), Internet of things(IOT), and Design and analysis of algorithm(DAA)", "url": "https://www.youtube.com/@5MinutesEngineering", "category": "youtube", "subcategory": "computer-science", "language": "hindi" + }, + { + "name": "KNOWLEDGE GATE", + "description": " KNOWLEDGE GATE is a YouTube channel that discusses core Computer Science subjects and helps CS/IT students to prepare for University/semester and GATE Exams", + "url": "https://www.youtube.com/@KNOWLEDGEGATE_kg/about", + "category": "youtube", + "subcategory": "computer-science", + "language": "hindi" } ] diff --git a/pages/[subcategory]/index.tsx b/pages/[subcategory]/index.tsx index 900ad1274..726181dcd 100644 --- a/pages/[subcategory]/index.tsx +++ b/pages/[subcategory]/index.tsx @@ -26,6 +26,59 @@ const SubCategory = () => { {title} + + + + + + + + + {/* Open Graph */} + + + + + + + + {/* Twitter */} + + + + + + + + +
diff --git a/pages/_document.tsx b/pages/_document.tsx index df00a4a5a..81e52806b 100644 --- a/pages/_document.tsx +++ b/pages/_document.tsx @@ -4,8 +4,19 @@ export default function Document() { return ( + LinksHub + + + + + + + {/* Should be changed on hosting the website */} - + {/* */} - - + + - - LinksHub + + + + + + + {/* Open Graph */} + + + + + + + + {/* Twitter */} + + + + + + + + + +
diff --git a/pages/search.tsx b/pages/search.tsx index 30131d154..9ea5f755c 100644 --- a/pages/search.tsx +++ b/pages/search.tsx @@ -35,6 +35,59 @@ const Search = () => { {title} + + + + + + + + + {/* Open Graph */} + + + + + + + + {/* Twitter */} + + + + + + + + +