Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: manual tools added to the Tools Dashboard #1191

Merged
merged 26 commits into from
Jan 18, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
394b755
code first tools added
akshatnema Dec 24, 2022
08c6fef
manual tools added
akshatnema Dec 25, 2022
cb5560f
Merge branch 'master' into manual-tools
akshatnema Dec 25, 2022
1931ea8
UI improved
akshatnema Dec 25, 2022
99d56ea
manual tools added
akshatnema Dec 26, 2022
9a90375
Compare tools added
akshatnema Dec 26, 2022
84e9b42
manual tools added
akshatnema Dec 27, 2022
6ef8964
Merge branch 'master' into manual-tools
akshatnema Dec 27, 2022
786caa4
Merge branch 'master' into manual-tools
akshatnema Jan 9, 2023
25bd0d0
schema changed
akshatnema Jan 9, 2023
a55e874
buttons fixed in Filters
akshatnema Jan 11, 2023
bbd230a
Merge branch 'master' into manual-tools
akshatnema Jan 12, 2023
ac3f4ac
new tools added
akshatnema Jan 12, 2023
19c70bf
schema changed
akshatnema Jan 13, 2023
018f6a3
Merge branch 'master' into manual-tools
akshatnema Jan 16, 2023
02ff5cf
Apply suggestions from code review
akshatnema Jan 16, 2023
a5bdb2b
changes done according to review
akshatnema Jan 16, 2023
429c531
changes made
akshatnema Jan 16, 2023
77595d4
Merge branch 'master' into manual-tools
akshatnema Jan 16, 2023
129fe92
added new tools to manual list
akshatnema Jan 16, 2023
a2f6bab
Merge remote-tracking branch 'refs/remotes/origin/manual-tools' into …
akshatnema Jan 16, 2023
6d724d3
hasCommercial parameter corrected
akshatnema Jan 16, 2023
61119fc
removed token from commit
akshatnema Jan 16, 2023
da21eeb
Merge branch 'master' into manual-tools
derberg Jan 17, 2023
9e920f3
Merge branch 'master' into manual-tools
alequetzalli Jan 18, 2023
eff39d6
Merge branch 'master' into manual-tools
akshatnema Jan 18, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion components/navigation/communityItems.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import IconNewsroom from '../icons/Newsroom'

export default [

{ icon: IconTools, title: 'Tools & Services', href: '/docs/tools', description: 'Explore the tools and services our awesome community has created.' },
{ icon: IconTools, title: 'Tools & Services', href: '/tools', description: 'Explore the tools and services our awesome community has created.' },
{ icon: IconGithubOrganization, title: 'GitHub Organization', href: 'https://github.com/asyncapi', target: '_blank', description: 'Want to sneak in the code? Everything we do is open-sourced in our GitHub organization.' },
{ icon: IconSlack, title: 'Slack Workspace', href: 'https://asyncapi.com/slack-invite', target: '_blank', description: `Need help? Want to share something? Join our Slack workspace. We're nice people :)` },
{ icon: IconContributing, title: 'Contributing', href: 'https://github.com/asyncapi?type=source#-contribute-to-asyncapi', target: '_blank', description: `We are always welcoming and looking for contributions. If you are interested check out our contribution guide.` },
Expand Down
6 changes: 3 additions & 3 deletions components/tools/Filters.js
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ export default function Filters({setOpenFilter}) {
}

return (
<div className="bg-white z-10 py-4 border rounded-lg border-gray-300 shadow-md">
<div className="bg-white z-20 py-4 border rounded-lg border-gray-300 shadow-md">
<div className="flex flex-col gap-2 mx-4">
<div className="flex gap-2 items-baseline justify-between">
<div className="text-sm text-gray-500 uppercase">Pricing</div>
Expand All @@ -57,11 +57,11 @@ export default function Filters({setOpenFilter}) {
</div>
</div>
<div className="flex gap-2">
<div className={twMerge(`bg-gray-200 px-4 py-2 flex gap-1 rounded-md hover:bg-secondary-100 border hover:border-secondary-500 cursor-pointer ${checkPaid==="free" ? 'bg-secondary-100 border-secondary-500' : ''}`)} onClick={() => setCheckPaid("free")}>
<div className={twMerge(`bg-gray-200 px-4 py-2 flex gap-1 rounded-md hover:bg-secondary-100 border hover:border-secondary-500 cursor-pointer ${checkPaid==="free" ? 'bg-secondary-100 border-secondary-500' : ''}`)} onClick={() => (checkPaid === "free" ? setCheckPaid("all") : setCheckPaid("free"))}>
<div className='text-sm'>Open Source</div>
<img src="/img/illustrations/icons/FreeIcon.svg" />
</div>
<div className={`bg-gray-200 px-4 py-2 flex gap-1 rounded-md hover:bg-secondary-100 border hover:border-secondary-500 cursor-pointer ${checkPaid==="paid" ? 'bg-secondary-100 border-secondary-500' : ''}`} onClick={() => setCheckPaid("paid")}>
<div className={`bg-gray-200 px-4 py-2 flex gap-1 rounded-md hover:bg-secondary-100 border hover:border-secondary-500 cursor-pointer ${checkPaid==="paid" ? 'bg-secondary-100 border-secondary-500' : ''}`} onClick={() => (checkPaid === "paid" ? setCheckPaid("all") : setCheckPaid("paid"))}>
<div className='text-sm'>Commercial</div>
<img src="/img/illustrations/icons/PaidIcon.svg" />
</div>
Expand Down
2 changes: 1 addition & 1 deletion components/tools/ToolDashboard.js
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ export default function ToolDashboard() {
<div>Filter</div>
</div>
{openFilter && (
<div className="z-10 absolute top-16 min-w-[20rem]">
<div className="z-20 absolute top-16 min-w-[20rem]">
<Filters setOpenFilter={setOpenFilter} />
</div>
)}
Expand Down
100 changes: 57 additions & 43 deletions components/tools/ToolsCard.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,34 +10,37 @@ export default function ToolsCard({ toolData }) {
const descriptionRef = useRef(null)
useEffect(() => {
let divHeight = descriptionRef.current.offsetHeight;
let numberOfLines = divHeight/20;
if(numberOfLines > 3) setShowMoreDescription(true)
let numberOfLines = divHeight / 20;
if (numberOfLines > 3) setShowMoreDescription(true)
else setShowMoreDescription(false)
}, [])


let onGit = false;
const url = new URL(toolData.links.repoUrl)
if (url.host == 'github.com') onGit = true
else onGit = false
if (toolData.links.repoUrl) {
const url = new URL(toolData.links.repoUrl)
if (url.host == 'github.com') onGit = true
else onGit = false
}

return (
<div className="border shadow-md rounded-lg">
<div className="border shadow-md h-auto flex flex-col rounded-lg">
<div className="pt-8 px-6 mb-6">
<div className="flex flex-col gap-2">
<div className="flex gap-4 justify-between w-full">
<Heading typeStyle="heading-sm-semibold">{toolData.title}</Heading>
<div className='bg-green-100 border border-green-600 text-green-600 p-1 text-center text-xs w-fit h-fit rounded-md'>
<div className='bg-green-100 border border-green-600 text-green-600 p-1 text-center text-xs w-fit min-w-[5.3rem] h-fit rounded-md'>
{toolData.filters.hasCommercial === false ? 'Open Source' : 'Commercial'}
</div>
</div>
<div className='relative'>
<Paragraph typeStyle="body-sm">
<div ref={descriptionRef} className={`w-full ${showMoreDescription ? 'cursor-pointer': '' }`} onMouseEnter={() =>(setTimeout(() => {if(showMoreDescription) setShowDescription(true)}, 500))}>
<TextTruncate
element="span"
line={3}
text={toolData.description}
/></div>
<div ref={descriptionRef} className={`w-full ${showMoreDescription ? 'cursor-pointer' : ''}`} onMouseEnter={() => (setTimeout(() => { if (showMoreDescription) setShowDescription(true) }, 500))}>
<TextTruncate
element="span"
line={3}
text={toolData.description}
/></div>
</Paragraph>
{showDescription && <div className="absolute top-0 p-2 z-10 bg-white w-full border border-gray-200 shadow-md" onMouseLeave={() => (setShowDescription(false))}>
<Paragraph typeStyle="body-sm" className=''>
Expand All @@ -48,8 +51,8 @@ export default function ToolsCard({ toolData }) {
</div>
</div>
<hr className="mx-6" />
{(toolData?.filters?.language || toolData?.filters?.technology?.length>0) &&
<div className="my-6">
<div className="grow">
{(toolData?.filters?.language || toolData?.filters?.technology?.length > 0) ? <div className="my-6">
{toolData.filters.language && <div className="flex flex-col gap-2 mx-6">
<div className="text-gray-700 text-sm font-semibold">LANGUAGES</div>
<div className="flex gap-2">
Expand All @@ -60,7 +63,7 @@ export default function ToolsCard({ toolData }) {
/>
</div>
</div>}
{toolData.filters.technology.length > 0 && <><div className="flex flex-col gap-2 my-4 mx-6">
{toolData.filters.technology.length > 0 && <div className="flex flex-col gap-2 my-4 mx-6">
<div className="text-gray-700 text-sm font-semibold">TECHNOLOGIES</div>
<div className="flex gap-2 flex-wrap">
{toolData.filters.technology.map((item, index) => (
Expand All @@ -71,37 +74,48 @@ export default function ToolsCard({ toolData }) {
/>
))}
</div>
</div></>}
</div>}
</div> :
<div className="w-full relative p-8 text-center h-full text-gray-700">
<div className='absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2'> No further details provided </div>
</div>}
{(toolData.links.repoUrl || toolData.links.websiteUrl) && <>
<hr className="" />
<div className="flex">
{onGit ?
<a className="w-full text-center py-6 hover:bg-gray-200 cursor-pointer" href={toolData.links.repoUrl} target='_blank' rel='noreferrer'>
<div className="m-auto flex w-fit gap-2">
<img src="/img/logos/github-black.svg" className="w-5" />
<div className="text-gray-700 text-sm">View on Github</div>
</div>
</a> :
<a className="w-full text-center py-6 hover:bg-gray-200 cursor-pointer" href={toolData.links.repoUrl} target='_blank' rel='noreferrer'>
<div className="m-auto flex w-fit gap-2">
<div className="text-gray-700 text-sm">View Source Code</div>
</div>
</a>
}
{toolData.links.websiteUrl && (
<>
<div className='border border-gray-200 h-auto'></div>
<a className="w-full text-center py-6 hover:bg-gray-200 cursor-pointer" href={toolData.links.repoUrl} target='_blank' rel='noreferrer'>
</div>
{(toolData.links.repoUrl || toolData.links.websiteUrl || toolData.links.docsUrl) && <>
<hr className="" />
<div className="flex">
{toolData.links.repoUrl && <>
{onGit ?
<a className="w-full text-center border-x py-6 px-1 hover:bg-gray-200 cursor-pointer" href={toolData.links.repoUrl} target='_blank' rel='noreferrer'>
<div className="m-auto flex w-fit gap-2">
<img src="/img/logos/github-black.svg" className="w-5" />
<div className="text-gray-700 text-sm">View Github</div>
</div>
</a> :
<a className="w-full text-center border-x border-gray-200 py-6 px-1 hover:bg-gray-200 cursor-pointer" href={toolData.links.repoUrl} target='_blank' rel='noreferrer'>
<div className="m-auto flex w-fit gap-2">
<div className="text-gray-700 text-sm">View Source Code</div>
</div>
</a>
}
</>}
{toolData.links.websiteUrl && (
<a className="w-full text-center py-6 px-1 hover:bg-gray-200 border-x border-gray-200 cursor-pointer" href={toolData.links.websiteUrl} target='_blank' rel='noreferrer'>
<div className="m-auto flex w-fit gap-2">
<img src="/img/illustrations/icons/share.svg" className="w-5" />
<div className="text-gray-700 text-sm">Visit Website</div>
</div>
</a>
</>
)}
</div>
</>}
</div>
);
)}
{toolData.links.docsUrl && (
<a className="w-full text-center py-6 px-1 hover:bg-gray-200 border-x border-gray-200 cursor-pointer" href={toolData.links.docsUrl} target='_blank' rel='noreferrer'>
<div className="m-auto flex w-fit gap-2">
<img src="/img/illustrations/icons/docs-icon.svg" className="w-5" />
<div className="text-gray-700 text-sm">Visit Docs</div>
</div>
</a>
)}
</div>
</>}
</div>
);
}
2 changes: 1 addition & 1 deletion components/tools/ToolsList.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ export default function toolsList({ toolsData }) {
{toolsData[categoryName].description}
</Paragraph>
<hr className='my-8' />
<div className="lg:grid grid-cols-3 gap-8">
<div className="flex flex-col lg:grid grid-cols-3 gap-8">
{toolsData[categoryName].toolsList.map((tool, toolIndex) => (
<ToolsCard key={toolIndex} toolData={tool} />
))}
Expand Down
2 changes: 1 addition & 1 deletion config/all-tags.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"languages":[{"name":"Go","color":"bg-[#8ECFDF]","borderColor":"border-[#00AFD9]"},{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"},{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"},{"name":"HTML","color":"bg-[#E2A291]","borderColor":"border-[#E44D26]"},{"name":"C/C++","color":"bg-[#93CDEF]","borderColor":"border-[#0080CC]"},{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"},{"name":"Python","color":"bg-[#A8D0EF]","borderColor":"border-[#3878AB]"},{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"},{"name":"Kotlin","color":"bg-[#B1ACDF]","borderColor":"border-[#756BD9]"},{"name":"Scala","color":"bg-[#FFA299]","borderColor":"border-[#DF301F]"},{"name":"Markdown","color":"bg-[#BABEBF]","borderColor":"border-[#445B64]"},{"name":"YAML","color":"bg-[#FFB764]","borderColor":"border-[#F1901F]"},{"name":"R","color":"bg-[#84B5ED]","borderColor":"border-[#246BBE]"},{"name":"Ruby","color":"bg-[#FF8289]","borderColor":"border-[#FF000F]"},{"name":"Rust","color":"bg-[#FFB8AA]","borderColor":"border-[#E43716]"},{"name":"Shell","color":"bg-[#87D4FF]","borderColor":"border-[#389ED7]"},{"name":"Groovy","color":"bg-[#B6D5E5]","borderColor":"border-[#609DBC]"}],"technologies":[{"name":"Node js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"Hermes","color":"bg-[#8AEEBD]","borderColor":"border-[#2AB672]"},{"name":"React JS","color":"bg-[#9FECFA]","borderColor":"border-[#08D8FE]"},{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"},{"name":"ASP.NET","color":"bg-[#71C2FB]","borderColor":"border-[#1577BC]"},{"name":"Springboot","color":"bg-[#98E279]","borderColor":"border-[#68BC44]"},{"name":"AWS","color":"bg-[#FF9F59]","borderColor":"border-[#EF6703]"},{"name":"Docker","color":"bg-[#B8E0FF]","borderColor":"border-[#2596ED]"},{"name":"Node-red","color":"bg-[#FF7474]","borderColor":"border-[#8F0101]"},{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"},{"name":"Saas","color":"bg-[#6AB8EC]","borderColor":"border-[#2275AD]"},{"name":"Kubernetes-native","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Scala","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Azure","color":"bg-[#4B93FF]","borderColor":"border-[#015ADF]"},{"name":"Jenkins","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Flask","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"WebComponents","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"AsyncAPI Generator","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"VSCode","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"SmartPaste","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}]}
{"languages":[{"name":"Go","color":"bg-[#8ECFDF]","borderColor":"border-[#00AFD9]"},{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"},{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"},{"name":"HTML","color":"bg-[#E2A291]","borderColor":"border-[#E44D26]"},{"name":"C/C++","color":"bg-[#93CDEF]","borderColor":"border-[#0080CC]"},{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"},{"name":"Python","color":"bg-[#A8D0EF]","borderColor":"border-[#3878AB]"},{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"},{"name":"Kotlin","color":"bg-[#B1ACDF]","borderColor":"border-[#756BD9]"},{"name":"Scala","color":"bg-[#FFA299]","borderColor":"border-[#DF301F]"},{"name":"Markdown","color":"bg-[#BABEBF]","borderColor":"border-[#445B64]"},{"name":"YAML","color":"bg-[#FFB764]","borderColor":"border-[#F1901F]"},{"name":"R","color":"bg-[#84B5ED]","borderColor":"border-[#246BBE]"},{"name":"Ruby","color":"bg-[#FF8289]","borderColor":"border-[#FF000F]"},{"name":"Rust","color":"bg-[#FFB8AA]","borderColor":"border-[#E43716]"},{"name":"Shell","color":"bg-[#87D4FF]","borderColor":"border-[#389ED7]"},{"name":"Groovy","color":"bg-[#B6D5E5]","borderColor":"border-[#609DBC]"}],"technologies":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"Hermes","color":"bg-[#8AEEBD]","borderColor":"border-[#2AB672]"},{"name":"React JS","color":"bg-[#9FECFA]","borderColor":"border-[#08D8FE]"},{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"},{"name":"ASP.NET","color":"bg-[#71C2FB]","borderColor":"border-[#1577BC]"},{"name":"Springboot","color":"bg-[#98E279]","borderColor":"border-[#68BC44]"},{"name":"AWS","color":"bg-[#FF9F59]","borderColor":"border-[#EF6703]"},{"name":"Docker","color":"bg-[#B8E0FF]","borderColor":"border-[#2596ED]"},{"name":"Node-RED","color":"bg-[#FF7474]","borderColor":"border-[#8F0101]"},{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"},{"name":"Saas","color":"bg-[#6AB8EC]","borderColor":"border-[#2275AD]"},{"name":"Kubernetes-native","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Scala","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Azure","color":"bg-[#4B93FF]","borderColor":"border-[#015ADF]"},{"name":"Jenkins","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Flask","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Liquid","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Kotlin","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Spring Cloud Streams","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Groovy","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Markdown","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Shell","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"WebComponents","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Babel","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Storybook","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"AsyncAPI Generator","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"VSCode","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"SmartPaste","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}]}