You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
2.7 KiB
100 lines
2.7 KiB
'use client'
|
|
|
|
import {
|
|
Tabs,
|
|
TabsContent,
|
|
TabsList,
|
|
TabsTrigger,
|
|
} from '../../../components/ui/tabs'
|
|
import SyntaxHighlighter from 'react-syntax-highlighter'
|
|
import { dark } from 'react-syntax-highlighter/dist/esm/styles/prism'
|
|
|
|
const codeSnippets = [
|
|
{
|
|
tech: 'NodeJs',
|
|
language: 'javascript',
|
|
snippet: `import axios from 'axios'
|
|
|
|
const BASE_URL = 'https://api.textbee.dev/api/v1'
|
|
const API_KEY = 'YOUR_API_KEY'
|
|
const DEVICE_ID = 'YOUR_DEVICE_ID'
|
|
|
|
const response = await axios.post(\`\$\{BASE_URL\}/gateway/devices/\$\{DEVICE_ID}/send-sms\`, {
|
|
recipients: [ '+1234567890' ],
|
|
message: 'Hello World!',
|
|
}, {
|
|
headers: {
|
|
'x-api-key': API_KEY,
|
|
},
|
|
})
|
|
|
|
console.log(response.data)`,
|
|
},
|
|
{
|
|
tech: 'Python',
|
|
language: 'python',
|
|
snippet: `import requests
|
|
|
|
BASE_URL = 'https://api.textbee.dev/api/v1'
|
|
API_KEY = 'YOUR_API_KEY'
|
|
DEVICE_ID = 'YOUR_DEVICE_ID'
|
|
|
|
response = requests.post(
|
|
f'{BASE_URL}/api/device/{DEVICE_ID}/send-sms',
|
|
json={
|
|
'recipients': ['+1234567890'],
|
|
'message': 'Hello World!'
|
|
},
|
|
headers={'x-api-key': API_KEY})
|
|
|
|
print(response.json())`,
|
|
},
|
|
{
|
|
tech: 'cURL',
|
|
language: 'bash',
|
|
snippet: `curl -X POST "https://api.textbee.dev/api/v1/gateway/devices/YOUR_DEVICE_ID/send-sms" \\
|
|
-H 'x-api-key: YOUR_API_KEY' \\
|
|
-H 'Content-Type: application/json' \\
|
|
-d '{
|
|
"recipients": [ "+1234567890" ],
|
|
"message": "Hello from textbee.dev"
|
|
}'`,
|
|
},
|
|
]
|
|
|
|
export default function CodeSnippetSection() {
|
|
return (
|
|
<section className='container mx-auto py-24 px-4 sm:px-6 lg:px-8 max-w-7xl bg-gray-50 dark:bg-muted rounded-2xl my-12'>
|
|
<div className='mx-auto max-w-[58rem]'>
|
|
<h3 className='text-3xl font-bold mb-8'>Code Snippet</h3>
|
|
<div className='bg-white dark:bg-black p-6 rounded-xl shadow-sm'>
|
|
<Tabs defaultValue={codeSnippets[0].tech} className='w-full'>
|
|
<TabsList className='grid w-full grid-cols-3'>
|
|
{codeSnippets.map((snippet) => {
|
|
return (
|
|
<TabsTrigger key={snippet.tech} value={snippet.tech}>
|
|
{snippet.tech}
|
|
</TabsTrigger>
|
|
)
|
|
})}
|
|
</TabsList>
|
|
{codeSnippets.map((snippet) => {
|
|
return (
|
|
<TabsContent key={snippet.tech} value={snippet.tech}>
|
|
<SyntaxHighlighter
|
|
language={snippet.language}
|
|
showLineNumbers={snippet.language !== 'bash'}
|
|
style={dark}
|
|
// className='min-h-[200px]'
|
|
>
|
|
{snippet.snippet}
|
|
</SyntaxHighlighter>
|
|
</TabsContent>
|
|
)
|
|
})}
|
|
</Tabs>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
)
|
|
}
|