Skip to content

Commit 9732915

Browse files
committed
Update javascript file
1 parent 0da70fa commit 9732915

File tree

2 files changed

+82
-79
lines changed

2 files changed

+82
-79
lines changed
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
'use client'
2+
import {
3+
renderCodeTable,
4+
renderExamples,
5+
formatShortHandAnchorIds,
6+
formatAnchorIds,
7+
} from '../../../utils'
8+
import props from '../../../../schema/javascript.json'
9+
import { OnThisPageContent } from '@/components/_onThisPage'
10+
import { useEffect, useState } from 'react'
11+
12+
export default function JavaScriptArticle() {
13+
const [onPageContent, setOnPageContent] = useState<JSX.Element | null>(null)
14+
useEffect(() => {
15+
setOnPageContent(<OnThisPageContent />)
16+
}, [])
17+
const modules = props.modules
18+
const layout = modules.map((mod) => {
19+
const classes = mod.classes
20+
.filter((x) => x.memberFunctions.length > 0)
21+
.map((class_) => {
22+
const functions = class_.memberFunctions.map((func) => {
23+
let args = null
24+
let shortArgs = null
25+
if (
26+
typeof func.parameters !== 'undefined' &&
27+
func.parameters.length > 0
28+
) {
29+
args = renderCodeTable(func.parameters)
30+
shortArgs = func.parameters.map((x) => x.name).join(', ')
31+
}
32+
let examples = null
33+
if (
34+
typeof func.examples !== 'undefined' &&
35+
func.examples.length > 0
36+
) {
37+
examples = renderExamples(func.examples, 'javascript', func.name)
38+
}
39+
return (
40+
<div key={func.name}>
41+
<h4
42+
className="divider"
43+
id={formatAnchorIds(
44+
formatShortHandAnchorIds(func.name, shortArgs),
45+
)}
46+
>
47+
{func.name}({shortArgs})
48+
</h4>
49+
<div data-accordion="collapse">
50+
<p>{func.summary}</p>
51+
{args}
52+
{examples}
53+
</div>
54+
</div>
55+
)
56+
})
57+
return (
58+
<div key={class_.name}>
59+
<h3 id={formatAnchorIds(class_.name)}>{class_.name}</h3>
60+
{functions}
61+
</div>
62+
)
63+
})
64+
return <div key={mod.name}>{classes}</div>
65+
})
66+
return (
67+
<article className="flex w-full flex-row">
68+
<div id="mainContent" className="overflow-x-scroll">
69+
<h1 className="tdb__subtitle font-display text-3xl tracking-tight text-slate-900 dark:text-white">
70+
JavaScript
71+
</h1>
72+
<div className="prose dark:prose-invert">{layout}</div>
73+
</div>
74+
<div className="relative hidden w-32 sm:mr-64 lg:mr-40 lg:block"></div>
75+
<div className="fixed top-24 w-64 flex-none scroll-mt-[8.5rem] pl-8 text-xs md:right-12 lg:right-12 xl:block xl:text-sm">
76+
{onPageContent}
77+
</div>
78+
</article>
79+
)
80+
}

src/app/docs/javascript/page.tsx

Lines changed: 2 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,5 @@
1-
'use client'
2-
import {
3-
renderCodeTable,
4-
renderExamples,
5-
formatShortHandAnchorIds,
6-
formatAnchorIds,
7-
} from '../../../utils'
8-
import { Layout } from '../../../components/_layout'
9-
import props from '../../../../schema/javascript.json'
10-
import { OnThisPageContent } from '@/components/_onThisPage'
11-
import { useEffect, useState } from 'react'
121
import { Metadata } from 'next'
2+
import JavaScriptArticle from './javascript'
133

144
export const metadata: Metadata = {
155
title: 'TerminusDB Javascript Client API Reference',
@@ -21,76 +11,9 @@ export const metadata: Metadata = {
2111
}
2212

2313
export default function JavaScript() {
24-
const [onPageContent, setOnPageContent] = useState<JSX.Element | null>(null)
25-
useEffect(() => {
26-
setOnPageContent(<OnThisPageContent />)
27-
}, [])
28-
const modules = props.modules
29-
const layout = modules.map((mod) => {
30-
const classes = mod.classes
31-
.filter((x) => x.memberFunctions.length > 0)
32-
.map((class_) => {
33-
const functions = class_.memberFunctions.map((func) => {
34-
let args = null
35-
let shortArgs = null
36-
if (
37-
typeof func.parameters !== 'undefined' &&
38-
func.parameters.length > 0
39-
) {
40-
args = renderCodeTable(func.parameters)
41-
shortArgs = func.parameters.map((x) => x.name).join(', ')
42-
}
43-
let examples = null
44-
if (
45-
typeof func.examples !== 'undefined' &&
46-
func.examples.length > 0
47-
) {
48-
examples = renderExamples(func.examples, 'javascript', func.name)
49-
}
50-
return (
51-
<div key={func.name}>
52-
<h4
53-
className="divider"
54-
id={formatAnchorIds(
55-
formatShortHandAnchorIds(func.name, shortArgs),
56-
)}
57-
>
58-
{func.name}({shortArgs})
59-
</h4>
60-
<div data-accordion="collapse">
61-
<p>{func.summary}</p>
62-
{args}
63-
{examples}
64-
</div>
65-
</div>
66-
)
67-
})
68-
return (
69-
<div key={class_.name}>
70-
<h3 id={formatAnchorIds(class_.name)}>{class_.name}</h3>
71-
{functions}
72-
</div>
73-
)
74-
})
75-
return <div key={mod.name}>{classes}</div>
76-
})
7714
return (
7815
<main id="content-wrapper" className="w-full max-w-2xl min-w-0 flex-auto px-4 py-16 lg:max-w-none lg:pr-0 lg:pl-8 xl:px-16">
79-
<article className="w-full flex flex-row">
80-
<div id="mainContent" className="overflow-x-scroll">
81-
<h1 className="tdb__subtitle font-display text-3xl tracking-tight text-slate-900 dark:text-white">
82-
JavaScript
83-
</h1>
84-
<div className="prose dark:prose-invert">
85-
{layout}
86-
</div>
87-
</div>
88-
<div className='hidden lg:block sm:mr-64 w-32 lg:mr-40 relative '>
89-
</div>
90-
<div className="fixed scroll-mt-[8.5rem] md:right-12 top-24 lg:right-12 w-64 flex-none pl-8 text-xs xl:block xl:text-sm">
91-
{onPageContent}
92-
</div>
93-
</article>
16+
<JavaScriptArticle/>
9417
</main>
9518
)
9619
}

0 commit comments

Comments
 (0)