forked from asyncapi/studio
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #4 from helios2003/fix/dynamic-og
Testing the Image Generator service on Netlify
- Loading branch information
Showing
29 changed files
with
1,080 additions
and
321 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
49 changes: 19 additions & 30 deletions
49
apps/design-system/src/components/DropdownMenu.stories.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,42 +1,31 @@ | ||
import { DropdownMenu } from '@asyncapi/studio-ui' | ||
import React from 'react'; | ||
import { Meta } from '@storybook/react'; | ||
import { DropdownMenu, DropdownMenuContent, DropdownMenuTrigger, DropdownMenuItem, DropdownMenuSeparator } from '@asyncapi/studio-ui' | ||
|
||
export default { | ||
const meta: Meta = { | ||
component: DropdownMenu, | ||
parameters: { | ||
layout: 'fullscreen', | ||
backgrounds: { | ||
default: 'dark' | ||
} | ||
}, | ||
} | ||
} | ||
|
||
const items = [ | ||
{ | ||
title: 'Import from URL', | ||
onSelect: () => console.log('Import from URL') | ||
}, | ||
{ | ||
title: 'Import from file', | ||
onSelect: () => console.log('Import from file') | ||
}, | ||
{ | ||
title: 'Import from Base64', | ||
onSelect: () => console.log('Import from Base64') | ||
}, | ||
{ | ||
type: 'separator' | ||
}, | ||
{ | ||
title: 'Generate code/docs', | ||
onSelect: () => console.log('Generate code/docs') | ||
}, | ||
] | ||
export default meta | ||
|
||
|
||
export const Default = { | ||
args: { | ||
trigger: <button className="text-black bg-white rounded mx-3 my-3 px-3">Click me!</button>, | ||
items, | ||
side: 'bottom', | ||
align: 'start' | ||
} | ||
render: () => (<DropdownMenu> | ||
<DropdownMenuTrigger asChild> | ||
<button className="text-black bg-white rounded mx-3 my-3 px-3">Click me!</button> | ||
</DropdownMenuTrigger> | ||
<DropdownMenuContent> | ||
<DropdownMenuItem onSelect={(e) => console.log(e.target)}>Import from URL</DropdownMenuItem> | ||
<DropdownMenuItem onSelect={(e) => console.log(e.target)}>Import from file</DropdownMenuItem> | ||
<DropdownMenuItem onSelect={(e) => console.log(e.target)}>Import from Base64</DropdownMenuItem> | ||
<DropdownMenuSeparator /> | ||
<DropdownMenuItem onSelect={(e) => console.log(e.target)}>Generate code/docs</DropdownMenuItem> | ||
</DropdownMenuContent> | ||
</DropdownMenu>) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
# studio-next | ||
|
||
## 0.1.3 | ||
|
||
### Patch Changes | ||
|
||
- 943fec1: fix: report correct `range` values in error diagnostics for YAML files | ||
|
||
## 0.1.2 | ||
|
||
### Patch Changes | ||
|
||
- c3248c8: fix: fix the validation error for payload of type `date` (https://github.com/asyncapi/parser-js/issues/980) | ||
|
||
## 0.1.1 | ||
|
||
### Patch Changes | ||
|
||
- a4b7fd1: Use Next.js framework |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
import { NextRequest, NextResponse } from "next/server"; | ||
import parseURL from "@/helpers/parser"; | ||
import { DocumentInfo } from "@/types"; | ||
import axios from "axios"; | ||
import { metadata } from "@/app/page"; | ||
|
||
export async function GET(request: NextRequest) { | ||
const Base64searchParams = request.nextUrl.searchParams.get('base64'); | ||
const URLsearchParams = request.nextUrl.searchParams.get('url'); | ||
|
||
try { | ||
if (!Base64searchParams && !URLsearchParams) return new NextResponse(null, { status: 200 }); | ||
let info: DocumentInfo | null = null; | ||
|
||
if (Base64searchParams) { | ||
// directly run the parsing function | ||
info = await parseURL(Base64searchParams); | ||
} | ||
if (URLsearchParams) { | ||
// fetch the document information from the URL | ||
try { | ||
const response = await axios.get(URLsearchParams); | ||
if (response.status === 200) { | ||
info = await parseURL(response.data); | ||
} else { | ||
return new NextResponse("Not a valid URL", { status: 500 }); | ||
} | ||
} catch (error) { | ||
return new NextResponse("Not a valid URL", { status: 500 }); | ||
} | ||
} | ||
|
||
if (!info) { | ||
const ogImage = "https://raw.githubusercontent.com/asyncapi/studio/master/apps/studio-next/public/img/meta-studio-og-image.jpeg"; | ||
|
||
const crawlerInfo = ` | ||
<!DOCTYPE html> | ||
<html lang="en"> | ||
<head> | ||
<meta charset="UTF-8"> | ||
<meta http-equiv="X-UA-Compatible" content="IE=edge"> | ||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
<title>"${metadata.openGraph?.title}"</title> | ||
<meta property="og:title" content="${metadata.openGraph?.title}" /> | ||
<meta property="og:description" content="${metadata.openGraph?.description}" /> | ||
<meta property="og:url" content="${metadata.openGraph?.url}" /> | ||
<meta property="og:image" content="${ogImage}" /> | ||
` | ||
return new NextResponse(crawlerInfo, { | ||
headers: { | ||
'Content-Type': 'text/html', | ||
}, | ||
}) | ||
} | ||
|
||
let ogImageParams = new URLSearchParams(); | ||
|
||
if (info.title) { | ||
ogImageParams.append('title', info.title.toString()); | ||
} | ||
if (info.description) { | ||
ogImageParams.append('description', info.description.toString()); | ||
} | ||
if (info.numServers) { | ||
ogImageParams.append('numServers', info.numServers.toString()); | ||
} | ||
if (info.numChannels) { | ||
ogImageParams.append('numChannels', info.numChannels.toString()); | ||
} | ||
if (info.numOperations) { | ||
ogImageParams.append('numOperations', info.numOperations.toString()); | ||
} | ||
if (info.numMessages) { | ||
ogImageParams.append('numMessages', info.numMessages.toString()); | ||
} | ||
|
||
const ogImageurl = `https://ogp-studio.vercel.app/api/og?${ogImageParams.toString()}`; | ||
|
||
const crawlerInfo = ` | ||
<!DOCTYPE html> | ||
<html lang="en"> | ||
<head> | ||
<meta charset="UTF-8"> | ||
<meta http-equiv="X-UA-Compatible" content="IE=edge"> | ||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
<title>${info.title}</title> | ||
${info.title ? `<meta property="og:title" content="${info.title}" />` : ''} | ||
${info.description ? `<meta property="og:description" content="${info.description}" />` : ''} | ||
<meta property="og:image" content=${ogImageurl} /> | ||
</head> | ||
</html> | ||
`; | ||
console.log(crawlerInfo); | ||
return new NextResponse(crawlerInfo, { | ||
status: 200, | ||
headers: { | ||
'Content-Type': 'text/html', | ||
}, | ||
}); | ||
} catch (err) { | ||
return new NextResponse("Not a valid URL", { status: 500 }); | ||
} | ||
} | ||
|
Oops, something went wrong.