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

Navigation to correct heading in tools #2789

Closed
wants to merge 4 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 14 additions & 1 deletion components/tools/ToolsList.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,25 @@
import ToolsCard from './ToolsCard';
import { useRef, useEffect } from 'react';
import Heading from '../typography/Heading'
import Paragraph from '../typography/Paragraph'
export default function toolsList({ toolsData }) {
const categoryRefs = useRef({});

useEffect(() => {
const hash = window.location.hash;
if (hash) {
const decodedHash = decodeURIComponent(hash.slice(1));
const categoryRef = categoryRefs.current[decodedHash];
if (categoryRef) {
categoryRef.scrollIntoView({ behavior: 'smooth', block: 'start' });
}
}
}, []);
return (
<div className="" data-testid="ToolsList-main" >
{Object.keys(toolsData).map((categoryName, index) => {
if(toolsData[categoryName].toolsList.length > 0) return (
<div className='my-8' key={index} id={categoryName}>
<div className='my-8' key={index} id={categoryName} ref={el => categoryRefs.current[categoryName] = el}>
<Heading typeStyle='heading-md-semibold' className='my-2' >
{categoryName}
</Heading>
Expand Down
2 changes: 1 addition & 1 deletion config/adopters.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
[{"companyName":"Reiffeisen Bank","useCase":"Continuous Integration and Continuous Delivery (CI/CD) pipeline based on GitOps to deploy a topology built on Async API definitions using a Kubernetes operator to an Apache Pulsar cluster.","resources":[{"title":"Video - From an AsyncAPI Definition to a Deployed Pulsar Topology Via GitOps","link":"https://www.youtube.com/watch?v=_MwzLZMwFN8"}]},{"companyName":"LEGO Group","useCase":"Broker management, where developers do not access the management console themselves, but rely on uploading AsyncAPI documents to a self service API that provisions access and topics specified in documents.","resources":[{"title":"Video - Documentation as Configuration for Management of Apache Pulsar","link":"https://www.youtube.com/watch?v=m8I0fYjx6Cc"}]},{"companyName":"LEGO Group","useCase":"Define, document and distribute event-driven APIs. Ensuring consistency and governance","resources":[{"title":"Video - Cross-Domain Events with AsyncAPI and AWS","link":"https://www.youtube.com/watch?v=qjarcJQVLOg"}]},{"companyName":"Bank of New Zealand","useCase":"Decentralized company-wide governance strategy for API. A self service for publishing APIs and docs.","resources":[{"title":"Video - Self-service Events & Decentralised Governance with AsyncAPI: A Real World Example","link":"https://www.confluent.io/events/kafka-summit-apac-2021/self-service-events-and-decentralised-governance-with-asyncapi-a-real-world/"}]},{"companyName":"Zora Robotics","useCase":"Documenting lot products public MQTT API and building a developers portal.","resources":[{"title":"Video - Buliding and managing an extensive API for Robotics and loT","link":"https://www.youtube.com/watch?v=yjHgT0n2BtA"},{"title":"Docs - Buliding and managing an extensive API for Robotics and loT","link":"https://docs.zorabots.be/dev-mqtt-docs/latest/index.html"}]},{"companyName":"Walmart","useCase":"Managing a central API Hub for internal teams. Using AsyncAPI for events discoverability an visibility in a single place. AsyncAPI also enabled company-wide governance on asynchronous APIs.","resources":[{"title":"Video - Time For AsyncAPI Specification","link":"https://www.youtube.com/watch?v=SxTpGRaNIPo"}]},{"companyName":"eBay","useCase":"Enabling partners to build with eBay through asynchronous communication. Public AsyncAPI documents enable code generation and faster integration. It also enables governance and standardisation.","resources":[{"title":"Video - AsyncAPI 2.0: Enabling the Event-Driven World","link":"https://www.youtube.com/watch?v=SxTpGRaNIPo"},{"title":"Article - AsyncAPI 2.0: Enabling the Event-Driven World","link":"https://innovation.ebayinc.com/tech/engineering/asyncapi-2-0-enabling-the-event-driven-world/"},{"title":"Docs - Overview of Notification API with public AsyncAPI documents","link":"https://developer.ebay.com/api-docs/commerce/notification/overview.html"}]}]
[{"companyName":"Reiffeisen Bank","useCase":"Implementing a Continuous Integration and Continuous Delivery (CI/CD) pipeline utilizing GitOps principles to deploy a topology constructed on AsyncAPI definitions using a Kubernetes operator to an Apache Pulsar cluster.","resources":[{"title":"Video: From an AsyncAPI Definition to a Deployed Pulsar Topology Via GitOps","link":"https://www.youtube.com/watch?v=_MwzLZMwFN8"}]},{"companyName":"LEGO Group","useCase":"Managing brokers, where developers abstain from direct access to the management console and instead upload AsyncAPI documents to a self-service API, which provisions access and topics specified in the documents.","resources":[{"title":"Video: Documentation as Configuration for Management of Apache Pulsar","link":"https://www.youtube.com/watch?v=m8I0fYjx6Cc"}]},{"companyName":"LEGO Group","useCase":"Defining, documenting, and distributing event-driven APIs while ensuring consistency and governance.","resources":[{"title":"Video: Cross-Domain Events with AsyncAPI and AWS","link":"https://www.youtube.com/watch?v=qjarcJQVLOg"}]},{"companyName":"Bank of New Zealand","useCase":"Establishing a decentralized company-wide governance strategy for APIs, providing a self-service platform for publishing APIs and documentation.","resources":[{"title":"Video: Self-service Events & Decentralised Governance with AsyncAPI: A Real World Example","link":"https://www.confluent.io/events/kafka-summit-apac-2021/self-service-events-and-decentralised-governance-with-asyncapi-a-real-world/"}]},{"companyName":"Zora Robotics","useCase":"Documenting public MQTT APIs for IoT products and constructing a developer portal.","resources":[{"title":"Video: Building and managing an extensive API for Robotics and IoT","link":"https://www.youtube.com/watch?v=yjHgT0n2BtA"},{"title":"Docs: Building and managing an extensive API for Robotics and IoT","link":"https://docs.zorabots.be/dev-mqtt-docs/latest/index.html"}]},{"companyName":"Walmart","useCase":"Managing a centralized API Hub for internal teams, enhancing event discoverability and visibility using AsyncAPI. AsyncAPI facilitates company-wide governance on asynchronous APIs.","resources":[{"title":"Video: Time For AsyncAPI Specification","link":"https://www.youtube.com/watch?v=SxTpGRaNIPo"}]},{"companyName":"eBay","useCase":"Facilitating partner integration with eBay through asynchronous communication, leveraging public AsyncAPI documents for code generation and rapid integration, while ensuring governance and standardization.","resources":[{"title":"Video: AsyncAPI 2.0: Enabling the Event-Driven World","link":"https://www.youtube.com/watch?v=SxTpGRaNIPo"},{"title":"Article: AsyncAPI 2.0: Enabling the Event-Driven World","link":"https://innovation.ebayinc.com/tech/engineering/asyncapi-2-0-enabling-the-event-driven-world/"},{"title":"Docs: Overview of Notification API with public AsyncAPI documents","link":"https://developer.ebay.com/api-docs/commerce/notification/overview.html"}]},{"companyName":"Postman","useCase":"Enhancing discoverability of information about system events by building a tool called Synapse for provisioning entire event-based infrastructure, with AsyncAPI documents as the source of truth.","resources":[{"title":"Video: Turbocharging your Developer Ecosystem with Events Powered by SNS/SQS, Serverless, and AsyncAPI","link":"https://www.youtube.com/watch?v=0_7QZyKLPoE"}]},{"companyName":"Adobe","useCase":"Providing event documentation to expedite development by generating classes based on message payload information from AsyncAPI documents.","resources":[{"title":"Slides: AsyncAPI and Modelina","link":"https://drive.google.com/file/d/1AVCG9_fFtuOtrvZVZWENmU2aDT7C51Jr/view?usp=sharing"}]},{"companyName":"Open University of Catalonia and Prodevelop","useCase":"Enabling monitoring of ports through a design-first approach, utilizing UML class diagrams to design the entire infrastructure. UML diagrams are source of truth for generated AsyncAPI documents that later are used for models and clients generation. These documents are extended with additional SLA properties to specify runtime quality of service requirements, facilitating real-time monitoring.","resources":[{"title":"Video: Leveraging AsyncAPI To Detect Anomalies in Smart Ports Platforms","link":"https://www.youtube.com/watch?v=m4KS6FSeTT4"}]},{"companyName":"Oracle","useCase":"Documenting data streaming APIs with AsyncAPI documents for client library generation in various programming languages, reducing development time for applications consuming data.","resources":[{"title":"Video: Productizing AsyncAPI for Data Replication","link":"https://www.youtube.com/watch?v=CGLlxYy66LY"}]},{"companyName":"TransferGo","useCase":"Enhancing discoverability of information about event-driven systems by documenting services with AsyncAPI, rendering documentation, and creating catalogs of events. Legacy services utilize a special library to generate AsyncAPI documents, while new services require AsyncAPI documents for generating PHP classes.","resources":[{"title":"Slides: How TransferGo Uses AsyncAPI To Improve Developer Experience","link":"https://drive.google.com/file/d/1t7tYMr8FMRInaZV0lWod1QfDuhhSjwBJ/view?usp=sharing"}]},{"companyName":"Kuehne+Nagel","useCase":"Implementing a GitOps-based pipeline to enable self-service management of Kafka infrastructure, including access control management. Automation of AsyncAPI document governance ensures consistency in the infrastructure at the pull request level.","resources":[{"title":"Slides: AsyncAPI For Platform Self-Service: A GitOps Tale","link":"https://drive.google.com/file/d/1y67PI8NaITPPwZAiDF2Zs7ISfcIpqMV8/view?usp=sharing"}]}]
4 changes: 4 additions & 0 deletions lib/i18nPaths.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ const i18nPaths = {
de: [
"", //Homepage Route
"/tools/cli"
],
hi:[
"", //Homepage Route
"/tools/cli"
]
};

Expand Down
28 changes: 28 additions & 0 deletions locales/hi/common.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"newsletterCTA": {
"title": "हमारे न्यूजलेटर की सदस्यता लें और एसिंकएपीआई के बारे में समाचार प्राप्त करें।",
"subtitle": "हम आपके इनबॉक्स का आदर करते हैं। कोई स्पैम नहीं, वादा ✌️",
"nameInput": "आपका नाम",
"emailInput": "आपका ईमेल",
"subscribeBtn": "सदस्यता लें",
"successTitle": "सदस्यता लेने के लिए धन्यवाद!",
"errorTitle": "कुछ गलत हो गया",
"errorSubtitle": "सदस्यता विफल रही, कृपया यहां एक बग का उल्लेख करके हमें इसके बारे में बताएं",
"errorLinkText": "यहां"
},
"newsroomSection": {
"title": "नवीनतम समाचार और ब्लॉग",
"description": "हमारे न्यूजरूम अनुभाग में आपका स्वागत है। यहां, आप हमारे ब्लॉग, लेख, घोषणाओं और यूट्यूब लाइव-स्ट्रीम के बारे में नवीनतम जानकारी प्राप्त करेंगे। आइए संगठन में हाल की गतिविधियों के बारे में अद्यतन रहें।",
"newsroomBtn": "न्यूजरूम पर जाएं",
"newsroomFeaturedPost": "फ़ीचर्ड ब्लॉग पोस्ट"
},
"googleCalendarBtn": "Google कैलेंडर में जोड़ें",
"subscribeBtn": "सदस्यता लें",
"icsFileBtn": "आईसीएस फाइल डाउनलोड करें",
"githubButton": "GitHub पर देखें",
"calendar": {
"title": "आगामी कार्यक्रम",
"viewCalendarBtn": "कैलेंडर देखें",
"noMettingsMessage": "अगले कुछ दिनों के लिए कोई मीटिंग निर्धारित नहीं है।"
}
}
Loading
Loading