@digi-frontend/dgate-api-documentation 1.0.91 → 1.0.93
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/layout/docsComponents/DocsContent/OverviewPage/index.js +1 -1
- package/dist/src/layout/docsComponents/DocsContent/OverviewPage/index.js.map +1 -1
- package/dist/styles.css +14 -5
- package/package.json +1 -1
- package/src/layout/docsComponents/DocsContent/OverviewPage/index.tsx +16 -19
- package/src/layout/docsComponents/DocsContent/OverviewPage/style.scss +13 -5
- package/src/layout/docsComponents/DocsSideMenuTree/style.scss +7 -0
- package/variables.txt +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as s}from"../../../../../_virtual/jsx-runtime.js";import e from"../../../../components/SVGLoader/SVGLoader.js";import i from"../../../../assets/icons/arrowRightGray.svg.js";import n from"../../../../assets/icons/arrow-down.svg.js";import t from"../../../../assets/icons/newCopyIcon.svg.js";import a from"../../../../assets/icons/arrow-up.svg.js";import{useSectionToggle as r,SectionEnum as l}from"../../../../context/SectionToggleContext.js";import{useState as o,useEffect as d}from"react";const
|
|
1
|
+
import{j as s}from"../../../../../_virtual/jsx-runtime.js";import e from"../../../../components/SVGLoader/SVGLoader.js";import i from"../../../../assets/icons/arrowRightGray.svg.js";import n from"../../../../assets/icons/arrow-down.svg.js";import t from"../../../../assets/icons/newCopyIcon.svg.js";import a from"../../../../assets/icons/arrow-up.svg.js";import{useSectionToggle as r,SectionEnum as l}from"../../../../context/SectionToggleContext.js";import{useState as o,useEffect as d}from"react";import{copyToClipboard as c}from"../../../../utils/index.js";const p=({data:p,setActiveItemData:m,setActiveType:v,onProductNavigate:h,apis:j})=>{var u,x,N,I;const{toggleSection:g}=r(),[O,E]=o((null===(x=null===(u=null==p?void 0:p.servers)||void 0===u?void 0:u[0])||void 0===x?void 0:x.url)||""),[S,f]=o(!1);d((()=>{var s,e;E((null===(e=null===(s=null==p?void 0:p.servers)||void 0===s?void 0:s[0])||void 0===e?void 0:e.url)||"")}),[p]);return s.jsxs("div",{className:"api-details-page",children:[s.jsx("h2",{className:"welcome",children:"Welcome to"}),s.jsx("h1",{className:"api-title",children:null==p?void 0:p.title}),s.jsxs("p",{className:"api-version",children:["API Version: ",s.jsx("span",{children:null==p?void 0:p.version})]}),s.jsxs("div",{className:"custom-url-input",children:[s.jsx("label",{className:"input-label",children:"API Base URL"}),s.jsxs("div",{className:"url-container",children:[s.jsxs("div",{className:"type-ddl",onClick:()=>f((s=>!s)),children:[s.jsx("span",{className:"url-text",children:O||"-"}),s.jsxs("div",{className:"icon-container",children:[0!==O.length&&s.jsx(e,{className:"icon",role:"button",tabIndex:0,onClick:s=>{s.stopPropagation(),c(O)},src:t}),0!==O.length&&s.jsx(e,{src:S?a:n})]})]}),S&&0!==O.length&&s.jsx("div",{className:"url-list",children:null===(N=null==p?void 0:p.servers)||void 0===N?void 0:N.map(((e,i)=>s.jsxs("div",{className:"url-item",onClick:()=>{E(e.url),f(!1)},children:[s.jsx("input",{type:"radio",name:"api-method",checked:O===e.url,readOnly:!0}),s.jsx("span",{children:e.url})]},i)))})]})]}),s.jsx("p",{className:"api-desc",children:`${p.description||"No Description"}`}),h&&s.jsxs("div",{className:"api-product-tag",children:["Product with this API"," ",s.jsx("span",{className:"product-tag",role:"button",tabIndex:-1,onClick:()=>h(p.associatedProduct.productId),children:p.associatedProduct.name})]}),s.jsx("h3",{className:"section-title",children:"Endpoints"}),Object.entries(null==p?void 0:p.tags).map((([n,t])=>s.jsxs("div",{className:"endpoint-group",children:[s.jsx("h4",{className:"tag-title",children:n}),s.jsx("div",{className:"endpoint-list",children:t.map(((t,a)=>{var r,o,d;return s.jsxs("div",{className:"endpoint-card",onClick:()=>(s=>{m(Object.assign(Object.assign({},s),{api:Object.assign({id:p.apiSpecId,title:p.title,description:p.description,version:p.version},p)})),v("ENDPOINT"),Object.entries((null==p?void 0:p.tags)||{}).findIndex((([,e])=>e.some((e=>e.id===s.id))));const e=Object.entries(p.tags).sort((([s],[e])=>"default"===s?1:"default"===e?-1:s.localeCompare(e))).findIndex((([e,i])=>i.find((e=>e.id===s.id))));g(p.apiSpecId,[{type:l.API_SECTION,setTo:!0},{type:l.ENDPOINTS_SECTION,setTo:!0},{type:l.TAG_SECTION,setTo:!0,index:e},{type:l.RESOURCE,setTo:!0,id:s.id}],{resetOthers:!0,filterKeys:[l.OVERVIEW]})})(t),children:[s.jsxs("div",{children:[s.jsxs("div",{className:"endpoint-card-header",children:[s.jsx("span",{className:`method-label ${t.method.toLowerCase()}`,children:t.method}),s.jsx("div",{className:"title-wrapper",children:s.jsxs("h5",{children:[(t.summary||"Endpoint Name").slice(0,40),(null!==(o=null===(r=t.summary)||void 0===r?void 0:r.length)&&void 0!==o?o:0)>40&&"..."]})})]}),s.jsxs("div",{className:"endpoint-meta",children:[s.jsx("p",{children:t.path}),s.jsx("p",{className:"description",children:null!==(d=t.description)&&void 0!==d?d:"No Description "})]})]}),s.jsx("div",{className:"endpoint-arrow",children:s.jsx(e,{src:i})})]},`${n}-${a}`)}))})]},n))),(null===(I=p.apiVersions)||void 0===I?void 0:I.length)>0&&s.jsxs("div",{className:"versions-section",children:[s.jsx("h4",{children:"API Versions"}),s.jsx("div",{className:"version-list",children:p.apiVersions.map(((e,i)=>{var n;return s.jsx("button",{className:"version-btn",onClick:()=>(s=>{if(s.apiSpecId===p.apiSpecId)return void v("OVERVIEW");const e=p.apiVersions.find((e=>e.apiSpecId===s.apiSpecId));if(!e)return;const i=j.find((s=>s.apiSpecId===e.apiSpecId));m(i),v("OVERVIEW"),g(i.apiSpecId,[{type:l.API_SECTION,setTo:!0},{type:l.OVERVIEW,setTo:!0}],{resetOthers:!0,filterKeys:[l.OVERVIEW,l.API_SECTION,l.ENDPOINTS_SECTION,l.TAG_SECTION]})})(e),children:(null===(n=e.metaData)||void 0===n?void 0:n.version)||"N/A"},i)}))})]})]})};export{p as OverviewPage};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../../src/layout/docsComponents/DocsContent/OverviewPage/index.tsx"],"sourcesContent":["import './style.scss'\nimport SVGLoader from '../../../../components/SVGLoader/SVGLoader'\nimport {\n arrowDown,\n arrowRightGray,\n arrowUp,\n newCopyIcon,\n} from '../../../../assets/icons/index'\nimport { EndpointData, OverviewData } from 'src/layout/docsLayout'\nimport { SectionEnum, useSectionToggle } from '../../../../../src/context/SectionToggleContext'\nimport React, { useEffect, useState } from 'react'\n\nexport const OverviewPage = ({\n data,\n setActiveItemData,\n setActiveType,\n onProductNavigate,\n apis,\n}: {\n data: OverviewData\n setActiveItemData: React.Dispatch<React.SetStateAction<OverviewData | EndpointData>>\n setActiveType: React.Dispatch<React.SetStateAction<'OVERVIEW' | 'ENDPOINT'>>\n onProductNavigate?: (productId: number) => void\n apis: OverviewData[]\n}) => {\n const { toggleSection } = useSectionToggle()\n const [selectedUrl, setSelectedUrl] = useState(data?.servers?.[0]?.url || '')\n const [isUrlDropdownOpen, setIsUrlDropdownOpen] = useState<boolean>(false)\n\n useEffect(() => {\n setSelectedUrl(data?.servers?.[0]?.url || '')\n }, [data])\n const handleVersionClick = (verObj) => {\n if (verObj.apiSpecId === data.apiSpecId) {\n setActiveType('OVERVIEW')\n return\n }\n\n const matchedVersion = data.apiVersions.find((v) => v.apiSpecId === verObj.apiSpecId)\n\n if (!matchedVersion) {\n return\n }\n\n const matchedApi = apis.find((api) => api.apiSpecId === matchedVersion.apiSpecId)\n setActiveItemData(matchedApi)\n\n setActiveType('OVERVIEW')\n toggleSection(\n matchedApi.apiSpecId,\n [\n { type: SectionEnum.API_SECTION, setTo: true },\n { type: SectionEnum.OVERVIEW, setTo: true },\n ],\n {\n resetOthers: true,\n filterKeys: [\n SectionEnum.OVERVIEW,\n SectionEnum.API_SECTION,\n SectionEnum.ENDPOINTS_SECTION,\n SectionEnum.TAG_SECTION,\n ],\n }\n )\n }\n\n const handleClick = (endpoint) => {\n setActiveItemData({\n ...endpoint,\n api: {\n id: data.apiSpecId,\n title: data.title,\n description: data.description,\n version: data.version,\n ...data,\n },\n })\n setActiveType('ENDPOINT')\n const tagEntries = Object.entries(data?.tags || {})\n const sectionIndex = tagEntries.findIndex(([, endpoints]) =>\n endpoints.some((e) => e.id === endpoint.id)\n )\n\n const tagSectionIndex = Object.entries(data.tags)\n .sort(([a], [b]) => (a === 'default' ? 1 : b === 'default' ? -1 : a.localeCompare(b)))\n .findIndex(([_, tagData]) => tagData.find((t) => t.id === endpoint.id))\n\n toggleSection(\n data.apiSpecId,\n [\n { type: SectionEnum.API_SECTION, setTo: true },\n { type: SectionEnum.ENDPOINTS_SECTION, setTo: true },\n { type: SectionEnum.TAG_SECTION, setTo: true, index: tagSectionIndex },\n { type: SectionEnum.RESOURCE, setTo: true, id: endpoint.id },\n ],\n { resetOthers: true, filterKeys: [SectionEnum.OVERVIEW] }\n )\n }\n\n return (\n <div className=\"api-details-page\">\n <h2 className=\"welcome\">Welcome to</h2>\n <h1 className=\"api-title\">{data?.title}</h1>\n <p className=\"api-version\">\n API Version: <span>{data?.version}</span>\n </p>\n\n <div className=\"custom-url-input\">\n <label className=\"input-label\">API Base URL</label>\n <div className=\"url-container\">\n <div className=\"typeDdl\" onClick={() => setIsUrlDropdownOpen((prev) => !prev)}>\n <span className=\"url-text\">{selectedUrl || '-'}</span>\n <div className=\"icon-container\">\n <span\n className=\"icon\"\n role=\"button\"\n tabIndex={0}\n onClick={(e) => {\n e.stopPropagation()\n navigator.clipboard.writeText(selectedUrl)\n }}\n >\n {selectedUrl.length !== 0 && <SVGLoader src={newCopyIcon} />}\n </span>\n {selectedUrl.length !== 0 && (\n <SVGLoader src={!isUrlDropdownOpen ? arrowDown : arrowUp} />\n )}\n </div>\n </div>\n {isUrlDropdownOpen && selectedUrl.length !== 0 && (\n <div className=\"urlList\">\n {data?.servers?.map((server, index) => (\n <div\n key={index}\n className=\"url-item\"\n onClick={() => {\n setSelectedUrl(server.url)\n setIsUrlDropdownOpen(false)\n }}\n >\n <input\n type=\"radio\"\n name=\"api-method\"\n checked={selectedUrl === server.url}\n readOnly\n />\n <span>{server.url}</span>\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n\n <p className=\"api-desc\">{`${data.description || 'No Description'}`}</p>\n {onProductNavigate && (\n <div className=\"api-product-tag\">\n Product with this API{' '}\n <span\n className=\"product-tag\"\n role=\"button\"\n tabIndex={-1}\n onClick={() => onProductNavigate(data.associatedProduct.productId)}\n >\n {data.associatedProduct.name}\n </span>\n </div>\n )}\n\n <h3 className=\"section-title\">Endpoints</h3>\n\n {Object.entries(data?.tags).map(([tag, endpoints]) => (\n <div className=\"endpoint-group\" key={tag}>\n <h4 className=\"tag-title\">{tag}</h4>\n <div className=\"endpoint-list\">\n {endpoints.map((endpoint, idx) => (\n <div\n className=\"endpoint-card\"\n onClick={() => handleClick(endpoint)}\n key={`${tag}-${idx}`}\n >\n <div>\n <div className=\"endpoint-card-header\">\n <span className={`method-label ${endpoint.method.toLowerCase()}`}>\n {endpoint.method}\n </span>\n <div className=\"title-wrapper\">\n <h5>\n {(endpoint.summary || 'Endpoint Name').slice(0, 40)}\n {(endpoint.summary?.length ?? 0) > 40 && '...'}\n </h5>\n </div>\n </div>\n <div className=\"endpoint-meta\">\n <p>{endpoint.path}</p>\n <p className=\"description\">{endpoint.description ?? 'No Description '}</p>\n </div>\n </div>\n\n <div className=\"endpoint-arrow\">\n <SVGLoader src={arrowRightGray} />\n </div>\n </div>\n ))}\n </div>\n </div>\n ))}\n\n {data.apiVersions?.length > 0 && (\n <div className=\"versions-section\">\n <h4>API Versions</h4>\n <div className=\"version-list\">\n {data.apiVersions.map((verObj, index) => (\n <button\n key={index}\n className=\"version-btn\"\n onClick={() => handleVersionClick(verObj)}\n >\n {verObj.metaData?.version || 'N/A'}\n </button>\n ))}\n </div>\n </div>\n )}\n </div>\n )\n}\n"],"names":["OverviewPage","data","setActiveItemData","setActiveType","onProductNavigate","apis","toggleSection","useSectionToggle","selectedUrl","setSelectedUrl","useState","_b","_a","servers","url","isUrlDropdownOpen","setIsUrlDropdownOpen","useEffect","_jsxs","className","_jsx","children","title","version","onClick","prev","jsx","role","tabIndex","e","stopPropagation","navigator","clipboard","writeText","length","SVGLoader","src","newCopyIcon","arrowUp","arrowDown","_c","map","server","index","type","name","checked","readOnly","description","associatedProduct","productId","Object","entries","tags","tag","endpoints","endpoint","idx","jsxs","assign","api","id","apiSpecId","findIndex","some","tagSectionIndex","sort","a","b","localeCompare","_","tagData","find","t","SectionEnum","API_SECTION","setTo","ENDPOINTS_SECTION","TAG_SECTION","RESOURCE","resetOthers","filterKeys","OVERVIEW","handleClick","method","toLowerCase","summary","slice","path","arrowRightGray","_d","apiVersions","verObj","matchedVersion","v","matchedApi","handleVersionClick","metaData"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../src/layout/docsComponents/DocsContent/OverviewPage/index.tsx"],"sourcesContent":["import './style.scss'\nimport SVGLoader from '../../../../components/SVGLoader/SVGLoader'\nimport { arrowDown, arrowRightGray, arrowUp, newCopyIcon } from '../../../../assets/icons/index'\nimport { EndpointData, OverviewData } from 'src/layout/docsLayout'\nimport { SectionEnum, useSectionToggle } from '../../../../../src/context/SectionToggleContext'\nimport React, { useEffect, useState } from 'react'\nimport { copyToClipboard } from '../../../../utils'\n\nexport const OverviewPage = ({\n data,\n setActiveItemData,\n setActiveType,\n onProductNavigate,\n apis,\n}: {\n data: OverviewData\n setActiveItemData: React.Dispatch<React.SetStateAction<OverviewData | EndpointData>>\n setActiveType: React.Dispatch<React.SetStateAction<'OVERVIEW' | 'ENDPOINT'>>\n onProductNavigate?: (productId: number) => void\n apis: OverviewData[]\n}) => {\n const { toggleSection } = useSectionToggle()\n const [selectedUrl, setSelectedUrl] = useState(data?.servers?.[0]?.url || '')\n const [isUrlDropdownOpen, setIsUrlDropdownOpen] = useState<boolean>(false)\n\n useEffect(() => {\n setSelectedUrl(data?.servers?.[0]?.url || '')\n }, [data])\n const handleVersionClick = (verObj) => {\n if (verObj.apiSpecId === data.apiSpecId) {\n setActiveType('OVERVIEW')\n return\n }\n\n const matchedVersion = data.apiVersions.find((v) => v.apiSpecId === verObj.apiSpecId)\n\n if (!matchedVersion) {\n return\n }\n\n const matchedApi = apis.find((api) => api.apiSpecId === matchedVersion.apiSpecId)\n setActiveItemData(matchedApi)\n\n setActiveType('OVERVIEW')\n toggleSection(\n matchedApi.apiSpecId,\n [\n { type: SectionEnum.API_SECTION, setTo: true },\n { type: SectionEnum.OVERVIEW, setTo: true },\n ],\n {\n resetOthers: true,\n filterKeys: [\n SectionEnum.OVERVIEW,\n SectionEnum.API_SECTION,\n SectionEnum.ENDPOINTS_SECTION,\n SectionEnum.TAG_SECTION,\n ],\n }\n )\n }\n\n const handleClick = (endpoint) => {\n setActiveItemData({\n ...endpoint,\n api: {\n id: data.apiSpecId,\n title: data.title,\n description: data.description,\n version: data.version,\n ...data,\n },\n })\n setActiveType('ENDPOINT')\n const tagEntries = Object.entries(data?.tags || {})\n const sectionIndex = tagEntries.findIndex(([, endpoints]) =>\n endpoints.some((e) => e.id === endpoint.id)\n )\n\n const tagSectionIndex = Object.entries(data.tags)\n .sort(([a], [b]) => (a === 'default' ? 1 : b === 'default' ? -1 : a.localeCompare(b)))\n .findIndex(([_, tagData]) => tagData.find((t) => t.id === endpoint.id))\n\n toggleSection(\n data.apiSpecId,\n [\n { type: SectionEnum.API_SECTION, setTo: true },\n { type: SectionEnum.ENDPOINTS_SECTION, setTo: true },\n { type: SectionEnum.TAG_SECTION, setTo: true, index: tagSectionIndex },\n { type: SectionEnum.RESOURCE, setTo: true, id: endpoint.id },\n ],\n { resetOthers: true, filterKeys: [SectionEnum.OVERVIEW] }\n )\n }\n\n return (\n <div className=\"api-details-page\">\n <h2 className=\"welcome\">Welcome to</h2>\n <h1 className=\"api-title\">{data?.title}</h1>\n <p className=\"api-version\">\n API Version: <span>{data?.version}</span>\n </p>\n\n <div className=\"custom-url-input\">\n <label className=\"input-label\">API Base URL</label>\n <div className=\"url-container\">\n <div className=\"type-ddl\" onClick={() => setIsUrlDropdownOpen((prev) => !prev)}>\n <span className=\"url-text\">{selectedUrl || '-'}</span>\n <div className=\"icon-container\">\n {selectedUrl.length !== 0 && (\n <SVGLoader\n className=\"icon\"\n role=\"button\"\n tabIndex={0}\n onClick={(e) => {\n e.stopPropagation()\n copyToClipboard(selectedUrl)\n }}\n src={newCopyIcon}\n />\n )}\n {selectedUrl.length !== 0 && (\n <SVGLoader src={!isUrlDropdownOpen ? arrowDown : arrowUp} />\n )}\n </div>\n </div>\n {isUrlDropdownOpen && selectedUrl.length !== 0 && (\n <div className=\"url-list\">\n {data?.servers?.map((server, index) => (\n <div\n key={index}\n className=\"url-item\"\n onClick={() => {\n setSelectedUrl(server.url)\n setIsUrlDropdownOpen(false)\n }}\n >\n <input\n type=\"radio\"\n name=\"api-method\"\n checked={selectedUrl === server.url}\n readOnly\n />\n <span>{server.url}</span>\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n\n <p className=\"api-desc\">{`${data.description || 'No Description'}`}</p>\n {onProductNavigate && (\n <div className=\"api-product-tag\">\n Product with this API{' '}\n <span\n className=\"product-tag\"\n role=\"button\"\n tabIndex={-1}\n onClick={() => onProductNavigate(data.associatedProduct.productId)}\n >\n {data.associatedProduct.name}\n </span>\n </div>\n )}\n\n <h3 className=\"section-title\">Endpoints</h3>\n\n {Object.entries(data?.tags).map(([tag, endpoints]) => (\n <div className=\"endpoint-group\" key={tag}>\n <h4 className=\"tag-title\">{tag}</h4>\n <div className=\"endpoint-list\">\n {endpoints.map((endpoint, idx) => (\n <div\n className=\"endpoint-card\"\n onClick={() => handleClick(endpoint)}\n key={`${tag}-${idx}`}\n >\n <div>\n <div className=\"endpoint-card-header\">\n <span className={`method-label ${endpoint.method.toLowerCase()}`}>\n {endpoint.method}\n </span>\n <div className=\"title-wrapper\">\n <h5>\n {(endpoint.summary || 'Endpoint Name').slice(0, 40)}\n {(endpoint.summary?.length ?? 0) > 40 && '...'}\n </h5>\n </div>\n </div>\n <div className=\"endpoint-meta\">\n <p>{endpoint.path}</p>\n <p className=\"description\">{endpoint.description ?? 'No Description '}</p>\n </div>\n </div>\n\n <div className=\"endpoint-arrow\">\n <SVGLoader src={arrowRightGray} />\n </div>\n </div>\n ))}\n </div>\n </div>\n ))}\n\n {data.apiVersions?.length > 0 && (\n <div className=\"versions-section\">\n <h4>API Versions</h4>\n <div className=\"version-list\">\n {data.apiVersions.map((verObj, index) => (\n <button\n key={index}\n className=\"version-btn\"\n onClick={() => handleVersionClick(verObj)}\n >\n {verObj.metaData?.version || 'N/A'}\n </button>\n ))}\n </div>\n </div>\n )}\n </div>\n )\n}\n"],"names":["OverviewPage","data","setActiveItemData","setActiveType","onProductNavigate","apis","toggleSection","useSectionToggle","selectedUrl","setSelectedUrl","useState","_b","_a","servers","url","isUrlDropdownOpen","setIsUrlDropdownOpen","useEffect","_jsxs","className","children","_jsx","jsx","title","version","onClick","prev","jsxs","length","SVGLoader","role","tabIndex","e","stopPropagation","copyToClipboard","src","newCopyIcon","arrowUp","arrowDown","_c","map","server","index","type","name","checked","readOnly","description","associatedProduct","productId","Object","entries","tags","tag","endpoints","endpoint","idx","assign","api","id","apiSpecId","findIndex","some","tagSectionIndex","sort","a","b","localeCompare","_","tagData","find","t","SectionEnum","API_SECTION","setTo","ENDPOINTS_SECTION","TAG_SECTION","RESOURCE","resetOthers","filterKeys","OVERVIEW","handleClick","method","toLowerCase","summary","slice","path","arrowRightGray","_d","apiVersions","verObj","matchedVersion","v","matchedApi","handleVersionClick","metaData"],"mappings":"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"}
|
package/dist/styles.css
CHANGED
|
@@ -1422,6 +1422,10 @@ div.endBtnIcon {
|
|
|
1422
1422
|
}
|
|
1423
1423
|
.api-docs-api-tree__section-header:hover {
|
|
1424
1424
|
background-color: #f3f4f6;
|
|
1425
|
+
width: 100%;
|
|
1426
|
+
}
|
|
1427
|
+
.api-docs-api-tree__section-header svg {
|
|
1428
|
+
min-width: 1rem;
|
|
1425
1429
|
}
|
|
1426
1430
|
.api-docs-api-tree__section-header svg:first-child path {
|
|
1427
1431
|
stroke: #bbbec5;
|
|
@@ -1432,6 +1436,8 @@ div.endBtnIcon {
|
|
|
1432
1436
|
font-weight: 500;
|
|
1433
1437
|
color: #000;
|
|
1434
1438
|
margin-left: 0.25rem;
|
|
1439
|
+
word-break: break-all;
|
|
1440
|
+
line-height: 0.9375rem;
|
|
1435
1441
|
}
|
|
1436
1442
|
.api-docs-api-tree__section__overview {
|
|
1437
1443
|
display: flex;
|
|
@@ -1963,14 +1969,14 @@ div.endBtnIcon {
|
|
|
1963
1969
|
.api-details-page .custom-url-input .url-container {
|
|
1964
1970
|
position: relative;
|
|
1965
1971
|
}
|
|
1966
|
-
.api-details-page .custom-url-input .
|
|
1972
|
+
.api-details-page .custom-url-input .type-ddl {
|
|
1967
1973
|
cursor: pointer;
|
|
1968
1974
|
display: flex;
|
|
1969
1975
|
align-items: center;
|
|
1970
1976
|
justify-content: space-between;
|
|
1971
1977
|
width: 100%;
|
|
1972
1978
|
background-color: #edf1fb;
|
|
1973
|
-
border:
|
|
1979
|
+
border: 1px solid #fff;
|
|
1974
1980
|
border-radius: 0.375rem;
|
|
1975
1981
|
padding: 0.5rem 1rem;
|
|
1976
1982
|
}
|
|
@@ -1996,7 +2002,10 @@ div.endBtnIcon {
|
|
|
1996
2002
|
width: 1.75rem;
|
|
1997
2003
|
height: 1.75rem;
|
|
1998
2004
|
}
|
|
1999
|
-
.api-details-page .custom-url-input .
|
|
2005
|
+
.api-details-page .custom-url-input .icon-container .icon:focus {
|
|
2006
|
+
outline: none;
|
|
2007
|
+
}
|
|
2008
|
+
.api-details-page .custom-url-input .url-list {
|
|
2000
2009
|
position: absolute;
|
|
2001
2010
|
top: 100%;
|
|
2002
2011
|
left: 0;
|
|
@@ -2004,8 +2013,8 @@ div.endBtnIcon {
|
|
|
2004
2013
|
z-index: 10;
|
|
2005
2014
|
background: white;
|
|
2006
2015
|
border: 1px solid #ccc;
|
|
2007
|
-
border-radius:
|
|
2008
|
-
max-height:
|
|
2016
|
+
border-radius: 0.375rem;
|
|
2017
|
+
max-height: 12.5rem;
|
|
2009
2018
|
overflow-y: auto;
|
|
2010
2019
|
}
|
|
2011
2020
|
.api-details-page .custom-url-input .url-item {
|
package/package.json
CHANGED
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
import './style.scss'
|
|
2
2
|
import SVGLoader from '../../../../components/SVGLoader/SVGLoader'
|
|
3
|
-
import {
|
|
4
|
-
arrowDown,
|
|
5
|
-
arrowRightGray,
|
|
6
|
-
arrowUp,
|
|
7
|
-
newCopyIcon,
|
|
8
|
-
} from '../../../../assets/icons/index'
|
|
3
|
+
import { arrowDown, arrowRightGray, arrowUp, newCopyIcon } from '../../../../assets/icons/index'
|
|
9
4
|
import { EndpointData, OverviewData } from 'src/layout/docsLayout'
|
|
10
5
|
import { SectionEnum, useSectionToggle } from '../../../../../src/context/SectionToggleContext'
|
|
11
6
|
import React, { useEffect, useState } from 'react'
|
|
7
|
+
import { copyToClipboard } from '../../../../utils'
|
|
12
8
|
|
|
13
9
|
export const OverviewPage = ({
|
|
14
10
|
data,
|
|
@@ -108,27 +104,28 @@ export const OverviewPage = ({
|
|
|
108
104
|
<div className="custom-url-input">
|
|
109
105
|
<label className="input-label">API Base URL</label>
|
|
110
106
|
<div className="url-container">
|
|
111
|
-
<div className="
|
|
107
|
+
<div className="type-ddl" onClick={() => setIsUrlDropdownOpen((prev) => !prev)}>
|
|
112
108
|
<span className="url-text">{selectedUrl || '-'}</span>
|
|
113
109
|
<div className="icon-container">
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
e
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
110
|
+
{selectedUrl.length !== 0 && (
|
|
111
|
+
<SVGLoader
|
|
112
|
+
className="icon"
|
|
113
|
+
role="button"
|
|
114
|
+
tabIndex={0}
|
|
115
|
+
onClick={(e) => {
|
|
116
|
+
e.stopPropagation()
|
|
117
|
+
copyToClipboard(selectedUrl)
|
|
118
|
+
}}
|
|
119
|
+
src={newCopyIcon}
|
|
120
|
+
/>
|
|
121
|
+
)}
|
|
125
122
|
{selectedUrl.length !== 0 && (
|
|
126
123
|
<SVGLoader src={!isUrlDropdownOpen ? arrowDown : arrowUp} />
|
|
127
124
|
)}
|
|
128
125
|
</div>
|
|
129
126
|
</div>
|
|
130
127
|
{isUrlDropdownOpen && selectedUrl.length !== 0 && (
|
|
131
|
-
<div className="
|
|
128
|
+
<div className="url-list">
|
|
132
129
|
{data?.servers?.map((server, index) => (
|
|
133
130
|
<div
|
|
134
131
|
key={index}
|
|
@@ -42,17 +42,18 @@
|
|
|
42
42
|
position: relative;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
.
|
|
45
|
+
.type-ddl {
|
|
46
46
|
cursor: pointer;
|
|
47
47
|
display: flex;
|
|
48
48
|
align-items: center;
|
|
49
49
|
justify-content: space-between;
|
|
50
50
|
width: 100%;
|
|
51
51
|
background-color: #edf1fb;
|
|
52
|
-
border:
|
|
52
|
+
border: 1px solid #fff;
|
|
53
53
|
border-radius: 0.375rem;
|
|
54
54
|
padding: 0.5rem 1rem;
|
|
55
55
|
}
|
|
56
|
+
|
|
56
57
|
.url-text {
|
|
57
58
|
flex: 1;
|
|
58
59
|
padding-right: 0.75rem;
|
|
@@ -65,18 +66,24 @@
|
|
|
65
66
|
opacity: 0.5;
|
|
66
67
|
color: #000000;
|
|
67
68
|
}
|
|
69
|
+
|
|
68
70
|
.icon-container {
|
|
69
71
|
display: flex;
|
|
70
72
|
align-items: center;
|
|
71
73
|
gap: 0.75rem;
|
|
74
|
+
|
|
72
75
|
.icon {
|
|
73
76
|
display: inline-block;
|
|
74
77
|
width: 1.75rem;
|
|
75
78
|
height: 1.75rem;
|
|
79
|
+
|
|
80
|
+
&:focus {
|
|
81
|
+
outline: none;
|
|
82
|
+
}
|
|
76
83
|
}
|
|
77
84
|
}
|
|
78
85
|
|
|
79
|
-
.
|
|
86
|
+
.url-list {
|
|
80
87
|
position: absolute;
|
|
81
88
|
top: 100%;
|
|
82
89
|
left: 0;
|
|
@@ -84,8 +91,8 @@
|
|
|
84
91
|
z-index: 10;
|
|
85
92
|
background: white;
|
|
86
93
|
border: 1px solid #ccc;
|
|
87
|
-
border-radius:
|
|
88
|
-
max-height:
|
|
94
|
+
border-radius: 0.375rem;
|
|
95
|
+
max-height: 12.5rem;
|
|
89
96
|
overflow-y: auto;
|
|
90
97
|
}
|
|
91
98
|
|
|
@@ -95,6 +102,7 @@
|
|
|
95
102
|
align-items: center;
|
|
96
103
|
gap: 0.5rem;
|
|
97
104
|
cursor: pointer;
|
|
105
|
+
|
|
98
106
|
&:hover {
|
|
99
107
|
background-color: #f5f5f5;
|
|
100
108
|
}
|
|
@@ -20,6 +20,11 @@
|
|
|
20
20
|
|
|
21
21
|
&:hover {
|
|
22
22
|
background-color: #f3f4f6;
|
|
23
|
+
width: 100%;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
svg {
|
|
27
|
+
min-width: 1rem;
|
|
23
28
|
}
|
|
24
29
|
|
|
25
30
|
svg:first-child {
|
|
@@ -35,6 +40,8 @@
|
|
|
35
40
|
font-weight: 500;
|
|
36
41
|
color: #000;
|
|
37
42
|
margin-left: 0.25rem;
|
|
43
|
+
word-break: break-all;
|
|
44
|
+
line-height: .9375rem;
|
|
38
45
|
}
|
|
39
46
|
|
|
40
47
|
&__overview {
|
package/variables.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export APP_VERSION=1.0.
|
|
1
|
+
export APP_VERSION=1.0.92
|