code7-leia 0.1.10 → 0.1.13
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/code7-leia.cjs.development.js +37 -32
- package/dist/code7-leia.cjs.development.js.map +1 -1
- package/dist/code7-leia.cjs.production.min.js +1 -1
- package/dist/code7-leia.cjs.production.min.js.map +1 -1
- package/dist/code7-leia.esm.js +38 -33
- package/dist/code7-leia.esm.js.map +1 -1
- package/dist/components/FileArea/index.d.ts +1 -1
- package/dist/interface/FileData.d.ts +4 -0
- package/package.json +1 -1
- package/src/Leia.tsx +2 -10
- package/src/components/FileArea/index.tsx +33 -9
- package/src/interface/FileData.ts +4 -0
|
@@ -113,30 +113,44 @@ var getLanguage = function getLanguage(language) {
|
|
|
113
113
|
var _templateObject$1;
|
|
114
114
|
var Container = /*#__PURE__*/styled.div(_templateObject$1 || (_templateObject$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n justify-content: center;\n"])));
|
|
115
115
|
|
|
116
|
-
var FileArea = function FileArea(
|
|
117
|
-
var
|
|
118
|
-
var _useState = React.useState({}),
|
|
116
|
+
var FileArea = function FileArea() {
|
|
117
|
+
var _useState = React.useState([]),
|
|
119
118
|
files = _useState[0],
|
|
120
119
|
setFiles = _useState[1];
|
|
120
|
+
var _useLocation = reactRouterDom.useLocation(),
|
|
121
|
+
pathname = _useLocation.pathname;
|
|
122
|
+
var id = pathname.split('/')[4];
|
|
121
123
|
React.useEffect(function () {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
"
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
"tags": "ebook, code7"
|
|
136
|
-
}]
|
|
137
|
-
});
|
|
124
|
+
setFiles([{
|
|
125
|
+
"name": "Documentação conceitual Code7_v3",
|
|
126
|
+
"tags": "boteria, code7"
|
|
127
|
+
}, {
|
|
128
|
+
"name": "PAE_Programa_Apoio_ao_Empregado",
|
|
129
|
+
"tags": "pae, vr"
|
|
130
|
+
}, {
|
|
131
|
+
"name": "Vidalink",
|
|
132
|
+
"tags": "vidalink, vr"
|
|
133
|
+
}, {
|
|
134
|
+
"name": "[GUIA PRÁTICO] Como criar o chatbot perfeito",
|
|
135
|
+
"tags": "ebook, code7"
|
|
136
|
+
}]);
|
|
138
137
|
}, []);
|
|
139
|
-
|
|
138
|
+
React.useEffect(function () {
|
|
139
|
+
console.log('files, id: ', files, id);
|
|
140
|
+
}, [files]);
|
|
141
|
+
var renderFiles = function renderFiles() {
|
|
142
|
+
if (files.length === 0) {
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
145
|
+
return React__default.createElement("ul", null, files.map(function (_ref, index) {
|
|
146
|
+
var name = _ref.name,
|
|
147
|
+
tags = _ref.tags;
|
|
148
|
+
return React__default.createElement("li", {
|
|
149
|
+
key: index
|
|
150
|
+
}, React__default.createElement("div", null, name), React__default.createElement("div", null, tags));
|
|
151
|
+
}));
|
|
152
|
+
};
|
|
153
|
+
return React__default.createElement(Container, null, React__default.createElement("div", null, "File Area"), renderFiles());
|
|
140
154
|
};
|
|
141
155
|
|
|
142
156
|
var TestArea = function TestArea() {
|
|
@@ -164,21 +178,12 @@ var Leia = function Leia(props) {
|
|
|
164
178
|
}, t.test)), React__default.createElement(React.Suspense, {
|
|
165
179
|
fallback: props.loading
|
|
166
180
|
}, React__default.createElement(reactRouterDom.Switch, null, React__default.createElement(reactRouterDom.Route, {
|
|
167
|
-
path: match.path,
|
|
181
|
+
path: "" + match.path,
|
|
168
182
|
exact: true,
|
|
169
|
-
|
|
170
|
-
return React__default.createElement(FileArea, Object.assign({}, routeProps, {
|
|
171
|
-
id: props.id
|
|
172
|
-
}));
|
|
173
|
-
}
|
|
183
|
+
component: FileArea
|
|
174
184
|
}), React__default.createElement(reactRouterDom.Route, {
|
|
175
185
|
path: match.path + "/files",
|
|
176
|
-
|
|
177
|
-
render: function render(routeProps) {
|
|
178
|
-
return React__default.createElement(FileArea, Object.assign({}, routeProps, {
|
|
179
|
-
id: props.id
|
|
180
|
-
}));
|
|
181
|
-
}
|
|
186
|
+
component: FileArea
|
|
182
187
|
}), React__default.createElement(reactRouterDom.Route, {
|
|
183
188
|
path: match.path + "/test",
|
|
184
189
|
component: TestArea
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code7-leia.cjs.development.js","sources":["../src/components/Tabs/styles.tsx","../src/components/Tabs/index.tsx","../src/utils/getLanguage.tsx","../src/components/FileArea/styles.tsx","../src/components/FileArea/index.tsx","../src/components/TestArea/index.tsx","../src/Leia.tsx","../src/index.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport { ReactNode } from 'react';\n\ninterface TabProps {\n children: ReactNode;\n}\n\ninterface OptionProps {\n children: ReactNode;\n onClick: () => void;\n}\n\nexport const TabsPane = styled.ul`\n width: max-content;\n display: flex;\n align-items: center;\n border-bottom: 1px solid var(--neutral-1);\n`;\n\nexport const Tab = styled.li<TabProps>`\n padding: 12px;\n color: var(--neutral-3);\n font-size: 0.875rem;\n font-weight: normal;\n position: relative;\n cursor: pointer;\n\n svg {\n fill: var(--neutral-3) !important;\n margin-left: 8px;\n }\n\n &.active {\n color: var(--primary-700-light);\n\n svg {\n fill: var(--primary-700-light) !important;\n }\n\n ::after {\n content: '';\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 2px;\n background-color: var(--primary-700-light);\n }\n }\n\n &:not(:last-child) {\n margin-right: 8px;\n }\n`;\n\nexport const DropdownContainer = styled.div`\n position: absolute;\n left: 0px;\n top: 40px;\n display: flex;\n flex-direction: column;\n\n background: #ffffff;\n\n border: 1px solid #979aa5;\n box-sizing: border-box;\n box-shadow: 0px 6px 12px -6px rgba(24, 39, 75, 0.12),\n 0px 8px 24px -4px rgba(24, 39, 75, 0.08);\n border-radius: 4px;\n padding: 8px;\n z-index: 2;\n`;\n\nexport const Option = styled.div<OptionProps>`\n padding: 8px;\n font-size: 14px;\n border-radius: 4px;\n cursor: pointer;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover {\n background-color: var(--primary-800-light);\n color: white;\n }\n`;\n","import React, { ReactNode } from 'react';\nimport PropTypes from 'prop-types';\nimport cc from 'classcat';\n\nimport * as S from './styles';\n\ninterface TabProps {\n children: ReactNode;\n active?: boolean;\n}\n\ninterface ITabsProps {\n children: ReactNode;\n value: string | number;\n onChange: (e: any) => void;\n active?: boolean;\n}\n\nexport const Tab = ({ active, children, ...rest }: TabProps) => {\n return (\n <S.Tab className={cc({ active })} {...rest}>\n {children}\n </S.Tab>\n );\n};\n\nTab.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]).isRequired,\n onChange: PropTypes.func,\n value: PropTypes.string,\n active: PropTypes.bool,\n};\n\nTab.defaultProps = {\n onChange: () => {},\n value: '',\n active: false,\n};\n\nexport const Tabs = ({ children: childrenProp, value, onChange, ...rest }: ITabsProps) => {\n const children = React.Children.map(childrenProp, (child) => {\n if (!React.isValidElement(child)) {\n return null;\n }\n\n if (Array.isArray(child.props?.children)) {\n return React.cloneElement(child as React.ReactElement<any>, {\n active: child.props?.value === value,\n value,\n onChange,\n });\n }\n\n return React.cloneElement(child as React.ReactElement<any>, {\n active: child.props?.value === value,\n onClick: () => onChange(child.props?.value),\n });\n });\n\n return <S.TabsPane {...rest}>{children}</S.TabsPane>;\n};\n\nTabs.propTypes = {\n children: PropTypes.node.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n onChange: PropTypes.func.isRequired,\n};\n","type Language = {\n files: string;\n test: string;\n};\n\nexport const getLanguage = (language: keyof Record<'en' | 'pt-br' | 'es', Language>): Language => {\n const languages: Record<'en' | 'pt-br' | 'es', Language> = {\n en: {\n files: 'Files',\n test: 'Test',\n },\n 'pt-br': {\n files: 'Arquivos',\n test: 'Teste',\n },\n es: {\n files: 'Archivos',\n test: 'Prueba',\n }\n };\n\n return languages[language] || languages['pt-br'];\n};\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n display: flex;\n justify-content: center;\n`;\n","import React, { useEffect, useState} from 'react';\n\n// import { formatAxios } from '../../utils/formatAxios'\n\nimport * as S from './styles';\n\nexport const FileArea = ({ id }: any) => {\n const [files, setFiles] = useState({});\n\n useEffect(() => {\n // setFiles(await formatAxios('get', `http://127.0.0.1:5000/files/${id}`, false, ''))\n setFiles({\n \"files\": [\n {\n \"name\": \"Documentação conceitual Code7_v3\",\n \"tags\": \"boteria, code7\"\n },\n {\n \"name\": \"PAE_Programa_Apoio_ao_Empregado\",\n \"tags\": \"pae, vr\"\n },\n {\n \"name\": \"Vidalink\",\n \"tags\": \"vidalink, vr\"\n },\n {\n \"name\": \"[GUIA PRÁTICO] Como criar o chatbot perfeito\",\n \"tags\": \"ebook, code7\"\n }\n ]\n })\n }, [])\n\n return (\n <S.Container>\n <div>File Area ${id} / ${files}</div>\n \n </S.Container>\n );\n};","import React from 'react';\n\nexport const TestArea = () => {\n return (\n <div>\n <p>Teste Area</p>\n \n </div>\n );\n};","import React, { useMemo, Suspense } from 'react';\n\nimport { Route, useLocation, useRouteMatch, useHistory, Switch as SwitchRoute } from 'react-router-dom';\n\nimport type { Props } from './index';\nimport { Tab, Tabs } from './components/Tabs'\n\nimport { getLanguage } from './utils/getLanguage'\n\nimport { FileArea } from './components/FileArea';\nimport { TestArea } from './components/TestArea';\n\nexport const Leia = (props: Props) => {\n const match = useRouteMatch();\n const { pathname } = useLocation();\n const history = useHistory();\n\n const t = getLanguage(props.language)\n\n const activeTab = useMemo(() => {\n return pathname.split('/')[5] || 'files';\n }, [pathname]);\n\n return (\n <>\n <Tabs\n value={activeTab}\n onChange={(value) => history.push(`${match.url}/${value}`)}\n >\n <Tab value=\"files\">{t.files}</Tab>\n <Tab value=\"test\">{t.test}</Tab>\n </Tabs>\n <Suspense fallback={props.loading}>\n <SwitchRoute>\n <Route\n path={match.path}\n exact\n render={(routeProps) => <FileArea {...routeProps} id={props.id} />}\n />\n <Route\n path={`${match.path}/files`}\n exact\n render={(routeProps) => <FileArea {...routeProps} id={props.id} />}\n />\n <Route path={`${match.path}/test`} component={TestArea} />\n </SwitchRoute>\n </Suspense>\n </>\n );\n};","import type { PropsWithChildren, ReactElement } from 'react';\nimport React from 'react';\nimport { Leia } from './Leia';\n\nexport type Props = PropsWithChildren<{\n id: string;\n activeTab: string;\n language: \"en\" | \"pt-br\" | \"es\";\n loading: ReactElement\n}>;\n\nexport function Code7(props: Props) {\n return <Leia {...props} />;\n}"],"names":["TabsPane","styled","ul","_templateObject","_taggedTemplateLiteralLoose","Tab","li","_templateObject2","_ref","active","children","rest","_objectWithoutPropertiesLoose","_excluded","React","S","className","cc","propTypes","PropTypes","oneOfType","string","element","node","isRequired","onChange","func","value","bool","defaultProps","Tabs","_ref2","childrenProp","_excluded2","Children","map","child","isValidElement","Array","isArray","_child$props","props","_child$props2","cloneElement","_child$props3","onClick","_child$props4","number","getLanguage","language","languages","en","files","test","es","Container","div","FileArea","id","_useState","useState","setFiles","useEffect","TestArea","Leia","match","useRouteMatch","_useLocation","useLocation","pathname","history","useHistory","t","activeTab","useMemo","split","push","url","Suspense","fallback","loading","SwitchRoute","Route","path","exact","render","routeProps","component","Code7"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"code7-leia.cjs.development.js","sources":["../src/components/Tabs/styles.tsx","../src/components/Tabs/index.tsx","../src/utils/getLanguage.tsx","../src/components/FileArea/styles.tsx","../src/components/FileArea/index.tsx","../src/components/TestArea/index.tsx","../src/Leia.tsx","../src/index.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport { ReactNode } from 'react';\n\ninterface TabProps {\n children: ReactNode;\n}\n\ninterface OptionProps {\n children: ReactNode;\n onClick: () => void;\n}\n\nexport const TabsPane = styled.ul`\n width: max-content;\n display: flex;\n align-items: center;\n border-bottom: 1px solid var(--neutral-1);\n`;\n\nexport const Tab = styled.li<TabProps>`\n padding: 12px;\n color: var(--neutral-3);\n font-size: 0.875rem;\n font-weight: normal;\n position: relative;\n cursor: pointer;\n\n svg {\n fill: var(--neutral-3) !important;\n margin-left: 8px;\n }\n\n &.active {\n color: var(--primary-700-light);\n\n svg {\n fill: var(--primary-700-light) !important;\n }\n\n ::after {\n content: '';\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 2px;\n background-color: var(--primary-700-light);\n }\n }\n\n &:not(:last-child) {\n margin-right: 8px;\n }\n`;\n\nexport const DropdownContainer = styled.div`\n position: absolute;\n left: 0px;\n top: 40px;\n display: flex;\n flex-direction: column;\n\n background: #ffffff;\n\n border: 1px solid #979aa5;\n box-sizing: border-box;\n box-shadow: 0px 6px 12px -6px rgba(24, 39, 75, 0.12),\n 0px 8px 24px -4px rgba(24, 39, 75, 0.08);\n border-radius: 4px;\n padding: 8px;\n z-index: 2;\n`;\n\nexport const Option = styled.div<OptionProps>`\n padding: 8px;\n font-size: 14px;\n border-radius: 4px;\n cursor: pointer;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover {\n background-color: var(--primary-800-light);\n color: white;\n }\n`;\n","import React, { ReactNode } from 'react';\nimport PropTypes from 'prop-types';\nimport cc from 'classcat';\n\nimport * as S from './styles';\n\ninterface TabProps {\n children: ReactNode;\n active?: boolean;\n}\n\ninterface ITabsProps {\n children: ReactNode;\n value: string | number;\n onChange: (e: any) => void;\n active?: boolean;\n}\n\nexport const Tab = ({ active, children, ...rest }: TabProps) => {\n return (\n <S.Tab className={cc({ active })} {...rest}>\n {children}\n </S.Tab>\n );\n};\n\nTab.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]).isRequired,\n onChange: PropTypes.func,\n value: PropTypes.string,\n active: PropTypes.bool,\n};\n\nTab.defaultProps = {\n onChange: () => {},\n value: '',\n active: false,\n};\n\nexport const Tabs = ({ children: childrenProp, value, onChange, ...rest }: ITabsProps) => {\n const children = React.Children.map(childrenProp, (child) => {\n if (!React.isValidElement(child)) {\n return null;\n }\n\n if (Array.isArray(child.props?.children)) {\n return React.cloneElement(child as React.ReactElement<any>, {\n active: child.props?.value === value,\n value,\n onChange,\n });\n }\n\n return React.cloneElement(child as React.ReactElement<any>, {\n active: child.props?.value === value,\n onClick: () => onChange(child.props?.value),\n });\n });\n\n return <S.TabsPane {...rest}>{children}</S.TabsPane>;\n};\n\nTabs.propTypes = {\n children: PropTypes.node.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n onChange: PropTypes.func.isRequired,\n};\n","type Language = {\n files: string;\n test: string;\n};\n\nexport const getLanguage = (language: keyof Record<'en' | 'pt-br' | 'es', Language>): Language => {\n const languages: Record<'en' | 'pt-br' | 'es', Language> = {\n en: {\n files: 'Files',\n test: 'Test',\n },\n 'pt-br': {\n files: 'Arquivos',\n test: 'Teste',\n },\n es: {\n files: 'Archivos',\n test: 'Prueba',\n }\n };\n\n return languages[language] || languages['pt-br'];\n};\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n display: flex;\n justify-content: center;\n`;\n","import React, { useEffect, useState} from 'react';\n\n// import { formatAxios } from '../../utils/formatAxios'\n\nimport { useLocation } from 'react-router-dom';\n\nimport type { FileData } from '../../interface/FileData'\n\nimport * as S from './styles';\n\nexport const FileArea = () => {\n const [files, setFiles] = useState<FileData[]>([]);\n const { pathname } = useLocation();\n const id = pathname.split('/')[4]\n\n useEffect(() => {\n setFiles([\n {\n \"name\": \"Documentação conceitual Code7_v3\",\n \"tags\": \"boteria, code7\"\n },\n {\n \"name\": \"PAE_Programa_Apoio_ao_Empregado\",\n \"tags\": \"pae, vr\"\n },\n {\n \"name\": \"Vidalink\",\n \"tags\": \"vidalink, vr\"\n },\n {\n \"name\": \"[GUIA PRÁTICO] Como criar o chatbot perfeito\",\n \"tags\": \"ebook, code7\"\n }\n ])\n }, [])\n\n useEffect(() => {\n console.log('files, id: ', files, id)\n }, [files])\n\n const renderFiles = () => {\n if (files.length === 0) {\n return null;\n }\n \n return (\n <ul>\n {files.map(({ name, tags }, index) => (\n <li key={index}>\n <div>{name}</div>\n <div>{tags}</div>\n </li>\n ))}\n </ul>\n );\n }\n\n return (\n <S.Container>\n <div>File Area</div>\n {renderFiles()}\n </S.Container>\n );\n};","import React from 'react';\n\nexport const TestArea = () => {\n return (\n <div>\n <p>Teste Area</p>\n \n </div>\n );\n};","import React, { useMemo, Suspense } from 'react';\n\nimport { Route, useLocation, useRouteMatch, useHistory, Switch as SwitchRoute } from 'react-router-dom';\n\nimport type { Props } from './index';\nimport { Tab, Tabs } from './components/Tabs'\n\nimport { getLanguage } from './utils/getLanguage'\n\nimport { FileArea } from './components/FileArea';\nimport { TestArea } from './components/TestArea';\n\nexport const Leia = (props: Props) => {\n const match = useRouteMatch();\n const { pathname } = useLocation();\n const history = useHistory();\n\n const t = getLanguage(props.language)\n\n const activeTab = useMemo(() => {\n return pathname.split('/')[5] || 'files';\n }, [pathname]);\n\n return (\n <>\n <Tabs\n value={activeTab}\n onChange={(value) => history.push(`${match.url}/${value}`)}\n >\n <Tab value=\"files\">{t.files}</Tab>\n <Tab value=\"test\">{t.test}</Tab>\n </Tabs>\n <Suspense fallback={props.loading}>\n <SwitchRoute>\n <Route path={`${match.path}`} exact component={FileArea} />\n <Route path={`${match.path}/files`} component={FileArea} />\n <Route path={`${match.path}/test`} component={TestArea} />\n </SwitchRoute>\n </Suspense>\n </>\n );\n};","import type { PropsWithChildren, ReactElement } from 'react';\nimport React from 'react';\nimport { Leia } from './Leia';\n\nexport type Props = PropsWithChildren<{\n id: string;\n activeTab: string;\n language: \"en\" | \"pt-br\" | \"es\";\n loading: ReactElement\n}>;\n\nexport function Code7(props: Props) {\n return <Leia {...props} />;\n}"],"names":["TabsPane","styled","ul","_templateObject","_taggedTemplateLiteralLoose","Tab","li","_templateObject2","_ref","active","children","rest","_objectWithoutPropertiesLoose","_excluded","React","S","className","cc","propTypes","PropTypes","oneOfType","string","element","node","isRequired","onChange","func","value","bool","defaultProps","Tabs","_ref2","childrenProp","_excluded2","Children","map","child","isValidElement","Array","isArray","_child$props","props","_child$props2","cloneElement","_child$props3","onClick","_child$props4","number","getLanguage","language","languages","en","files","test","es","Container","div","FileArea","_useState","useState","setFiles","_useLocation","useLocation","pathname","id","split","useEffect","console","log","renderFiles","length","index","name","tags","key","TestArea","Leia","match","useRouteMatch","history","useHistory","t","activeTab","useMemo","push","url","Suspense","fallback","loading","SwitchRoute","Route","path","exact","component","Code7"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var n,t,r=require("react"),a=e(r),
|
|
1
|
+
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var n,t,r=require("react"),a=e(r),l=require("react-router-dom"),i=e(require("prop-types")),o=e(require("classcat")),u=e(require("styled-components"));function c(e,n){if(null==e)return{};var t,r,a={},l=Object.keys(e);for(r=0;r<l.length;r++)n.indexOf(t=l[r])>=0||(a[t]=e[t]);return a}function s(e,n){return n||(n=e.slice(0)),e.raw=n,e}var p=u.ul(n||(n=s(["\n width: max-content;\n display: flex;\n align-items: center;\n border-bottom: 1px solid var(--neutral-1);\n"]))),m=u.li(t||(t=s(["\n padding: 12px;\n color: var(--neutral-3);\n font-size: 0.875rem;\n font-weight: normal;\n position: relative;\n cursor: pointer;\n\n svg {\n fill: var(--neutral-3) !important;\n margin-left: 8px;\n }\n\n &.active {\n color: var(--primary-700-light);\n\n svg {\n fill: var(--primary-700-light) !important;\n }\n\n ::after {\n content: '';\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 2px;\n background-color: var(--primary-700-light);\n }\n }\n\n &:not(:last-child) {\n margin-right: 8px;\n }\n"]))),v=["active","children"],f=["children","value","onChange"],d=function(e){var n=e.active,t=e.children,r=c(e,v);return a.createElement(m,Object.assign({className:o({active:n})},r),t)};d.propTypes={children:i.oneOfType([i.string,i.element,i.node]).isRequired,onChange:i.func,value:i.string,active:i.bool},d.defaultProps={onChange:function(){},value:"",active:!1};var g=function(e){var n=e.children,t=e.value,r=e.onChange,l=c(e,f),i=a.Children.map(n,(function(e){var n,l,i;return a.isValidElement(e)?Array.isArray(null==(n=e.props)?void 0:n.children)?a.cloneElement(e,{active:(null==(i=e.props)?void 0:i.value)===t,value:t,onChange:r}):a.cloneElement(e,{active:(null==(l=e.props)?void 0:l.value)===t,onClick:function(){var n;return r(null==(n=e.props)?void 0:n.value)}}):null}));return a.createElement(p,Object.assign({},l),i)};g.propTypes={children:i.node.isRequired,value:i.oneOfType([i.string,i.number]).isRequired,onChange:i.func.isRequired};var h,E=u.div(h||(h=s(["\n display: flex;\n justify-content: center;\n"]))),b=function(){var e=r.useState([]),n=e[0],t=e[1],i=l.useLocation().pathname.split("/")[4];return r.useEffect((function(){t([{name:"Documentação conceitual Code7_v3",tags:"boteria, code7"},{name:"PAE_Programa_Apoio_ao_Empregado",tags:"pae, vr"},{name:"Vidalink",tags:"vidalink, vr"},{name:"[GUIA PRÁTICO] Como criar o chatbot perfeito",tags:"ebook, code7"}])}),[]),r.useEffect((function(){console.log("files, id: ",n,i)}),[n]),a.createElement(E,null,a.createElement("div",null,"File Area"),0===n.length?null:a.createElement("ul",null,n.map((function(e,n){var t=e.tags;return a.createElement("li",{key:n},a.createElement("div",null,e.name),a.createElement("div",null,t))}))))},y=function(){return a.createElement("div",null,a.createElement("p",null,"Teste Area"))},C=function(e){var n,t=l.useRouteMatch(),i=l.useLocation().pathname,o=l.useHistory(),u=(n={en:{files:"Files",test:"Test"},"pt-br":{files:"Arquivos",test:"Teste"},es:{files:"Archivos",test:"Prueba"}})[e.language]||n["pt-br"],c=r.useMemo((function(){return i.split("/")[5]||"files"}),[i]);return a.createElement(a.Fragment,null,a.createElement(g,{value:c,onChange:function(e){return o.push(t.url+"/"+e)}},a.createElement(d,{value:"files"},u.files),a.createElement(d,{value:"test"},u.test)),a.createElement(r.Suspense,{fallback:e.loading},a.createElement(l.Switch,null,a.createElement(l.Route,{path:""+t.path,exact:!0,component:b}),a.createElement(l.Route,{path:t.path+"/files",component:b}),a.createElement(l.Route,{path:t.path+"/test",component:y}))))};exports.Code7=function(e){return a.createElement(C,Object.assign({},e))};
|
|
2
2
|
//# sourceMappingURL=code7-leia.cjs.production.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code7-leia.cjs.production.min.js","sources":["../src/components/Tabs/styles.tsx","../src/components/Tabs/index.tsx","../src/utils/getLanguage.tsx","../src/components/FileArea/styles.tsx","../src/components/FileArea/index.tsx","../src/components/TestArea/index.tsx","../src/Leia.tsx","../src/index.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport { ReactNode } from 'react';\n\ninterface TabProps {\n children: ReactNode;\n}\n\ninterface OptionProps {\n children: ReactNode;\n onClick: () => void;\n}\n\nexport const TabsPane = styled.ul`\n width: max-content;\n display: flex;\n align-items: center;\n border-bottom: 1px solid var(--neutral-1);\n`;\n\nexport const Tab = styled.li<TabProps>`\n padding: 12px;\n color: var(--neutral-3);\n font-size: 0.875rem;\n font-weight: normal;\n position: relative;\n cursor: pointer;\n\n svg {\n fill: var(--neutral-3) !important;\n margin-left: 8px;\n }\n\n &.active {\n color: var(--primary-700-light);\n\n svg {\n fill: var(--primary-700-light) !important;\n }\n\n ::after {\n content: '';\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 2px;\n background-color: var(--primary-700-light);\n }\n }\n\n &:not(:last-child) {\n margin-right: 8px;\n }\n`;\n\nexport const DropdownContainer = styled.div`\n position: absolute;\n left: 0px;\n top: 40px;\n display: flex;\n flex-direction: column;\n\n background: #ffffff;\n\n border: 1px solid #979aa5;\n box-sizing: border-box;\n box-shadow: 0px 6px 12px -6px rgba(24, 39, 75, 0.12),\n 0px 8px 24px -4px rgba(24, 39, 75, 0.08);\n border-radius: 4px;\n padding: 8px;\n z-index: 2;\n`;\n\nexport const Option = styled.div<OptionProps>`\n padding: 8px;\n font-size: 14px;\n border-radius: 4px;\n cursor: pointer;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover {\n background-color: var(--primary-800-light);\n color: white;\n }\n`;\n","import React, { ReactNode } from 'react';\nimport PropTypes from 'prop-types';\nimport cc from 'classcat';\n\nimport * as S from './styles';\n\ninterface TabProps {\n children: ReactNode;\n active?: boolean;\n}\n\ninterface ITabsProps {\n children: ReactNode;\n value: string | number;\n onChange: (e: any) => void;\n active?: boolean;\n}\n\nexport const Tab = ({ active, children, ...rest }: TabProps) => {\n return (\n <S.Tab className={cc({ active })} {...rest}>\n {children}\n </S.Tab>\n );\n};\n\nTab.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]).isRequired,\n onChange: PropTypes.func,\n value: PropTypes.string,\n active: PropTypes.bool,\n};\n\nTab.defaultProps = {\n onChange: () => {},\n value: '',\n active: false,\n};\n\nexport const Tabs = ({ children: childrenProp, value, onChange, ...rest }: ITabsProps) => {\n const children = React.Children.map(childrenProp, (child) => {\n if (!React.isValidElement(child)) {\n return null;\n }\n\n if (Array.isArray(child.props?.children)) {\n return React.cloneElement(child as React.ReactElement<any>, {\n active: child.props?.value === value,\n value,\n onChange,\n });\n }\n\n return React.cloneElement(child as React.ReactElement<any>, {\n active: child.props?.value === value,\n onClick: () => onChange(child.props?.value),\n });\n });\n\n return <S.TabsPane {...rest}>{children}</S.TabsPane>;\n};\n\nTabs.propTypes = {\n children: PropTypes.node.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n onChange: PropTypes.func.isRequired,\n};\n","type Language = {\n files: string;\n test: string;\n};\n\nexport const getLanguage = (language: keyof Record<'en' | 'pt-br' | 'es', Language>): Language => {\n const languages: Record<'en' | 'pt-br' | 'es', Language> = {\n en: {\n files: 'Files',\n test: 'Test',\n },\n 'pt-br': {\n files: 'Arquivos',\n test: 'Teste',\n },\n es: {\n files: 'Archivos',\n test: 'Prueba',\n }\n };\n\n return languages[language] || languages['pt-br'];\n};\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n display: flex;\n justify-content: center;\n`;\n","import React, { useEffect, useState} from 'react';\n\n// import { formatAxios } from '../../utils/formatAxios'\n\nimport * as S from './styles';\n\nexport const FileArea = ({ id }: any) => {\n const [files, setFiles] = useState({});\n\n useEffect(() => {\n // setFiles(await formatAxios('get', `http://127.0.0.1:5000/files/${id}`, false, ''))\n setFiles({\n \"files\": [\n {\n \"name\": \"Documentação conceitual Code7_v3\",\n \"tags\": \"boteria, code7\"\n },\n {\n \"name\": \"PAE_Programa_Apoio_ao_Empregado\",\n \"tags\": \"pae, vr\"\n },\n {\n \"name\": \"Vidalink\",\n \"tags\": \"vidalink, vr\"\n },\n {\n \"name\": \"[GUIA PRÁTICO] Como criar o chatbot perfeito\",\n \"tags\": \"ebook, code7\"\n }\n ]\n })\n }, [])\n\n return (\n <S.Container>\n <div>File Area ${id} / ${files}</div>\n \n </S.Container>\n );\n};","import React from 'react';\n\nexport const TestArea = () => {\n return (\n <div>\n <p>Teste Area</p>\n \n </div>\n );\n};","import React, { useMemo, Suspense } from 'react';\n\nimport { Route, useLocation, useRouteMatch, useHistory, Switch as SwitchRoute } from 'react-router-dom';\n\nimport type { Props } from './index';\nimport { Tab, Tabs } from './components/Tabs'\n\nimport { getLanguage } from './utils/getLanguage'\n\nimport { FileArea } from './components/FileArea';\nimport { TestArea } from './components/TestArea';\n\nexport const Leia = (props: Props) => {\n const match = useRouteMatch();\n const { pathname } = useLocation();\n const history = useHistory();\n\n const t = getLanguage(props.language)\n\n const activeTab = useMemo(() => {\n return pathname.split('/')[5] || 'files';\n }, [pathname]);\n\n return (\n <>\n <Tabs\n value={activeTab}\n onChange={(value) => history.push(`${match.url}/${value}`)}\n >\n <Tab value=\"files\">{t.files}</Tab>\n <Tab value=\"test\">{t.test}</Tab>\n </Tabs>\n <Suspense fallback={props.loading}>\n <SwitchRoute>\n <Route\n path={match.path}\n exact\n render={(routeProps) => <FileArea {...routeProps} id={props.id} />}\n />\n <Route\n path={`${match.path}/files`}\n exact\n render={(routeProps) => <FileArea {...routeProps} id={props.id} />}\n />\n <Route path={`${match.path}/test`} component={TestArea} />\n </SwitchRoute>\n </Suspense>\n </>\n );\n};","import type { PropsWithChildren, ReactElement } from 'react';\nimport React from 'react';\nimport { Leia } from './Leia';\n\nexport type Props = PropsWithChildren<{\n id: string;\n activeTab: string;\n language: \"en\" | \"pt-br\" | \"es\";\n loading: ReactElement\n}>;\n\nexport function Code7(props: Props) {\n return <Leia {...props} />;\n}"],"names":["TabsPane","styled","ul","_templateObject","_taggedTemplateLiteralLoose","Tab","li","_templateObject2","_ref","active","children","rest","_objectWithoutPropertiesLoose","_excluded","React","S","className","cc","propTypes","PropTypes","oneOfType","string","element","node","isRequired","onChange","func","value","bool","defaultProps","Tabs","_ref2","childrenProp","_excluded2","Children","map","child","_child$props2","isValidElement","Array","isArray","_child$props","props","cloneElement","_child$props3","onClick","_child$props4","number","Container","div","FileArea","id","_useState","useState","files","setFiles","useEffect","name","tags","TestArea","Leia","languages","match","useRouteMatch","pathname","useLocation","history","useHistory","t","en","test","pt-br","es","language","activeTab","useMemo","split","push","url","Suspense","fallback","loading","SwitchRoute","Route","path","exact","render","routeProps","component"],"mappings":"udAYO,IAAMA,EAAWC,EAAOC,GAAEC,IAAAA,EAAAC,2HAOpBC,EAAMJ,EAAOK,GAAEC,IAAAA,EAAAH,0pBCDfC,EAAM,SAAHG,OAAMC,EAAMD,EAANC,OAAQC,EAAQF,EAARE,SAAaC,EAAIC,EAAAJ,EAAAK,GAC7C,OACEC,gBAACC,iBAAMC,UAAWC,EAAG,CAAER,OAAAA,KAAeE,GACnCD,IAKPL,EAAIa,UAAY,CACdR,SAAUS,EAAUC,UAAU,CAC5BD,EAAUE,OACVF,EAAUG,QACVH,EAAUI,OACTC,WACHC,SAAUN,EAAUO,KACpBC,MAAOR,EAAUE,OACjBZ,OAAQU,EAAUS,MAGpBvB,EAAIwB,aAAe,CACjBJ,SAAU,aACVE,MAAO,GACPlB,QAAQ,GAGH,IAAMqB,EAAO,SAAHC,OAAgBC,EAAYD,EAAtBrB,SAAwBiB,EAAKI,EAALJ,MAAOF,EAAQM,EAARN,SAAad,EAAIC,EAAAmB,EAAAE,GAC/DvB,EAAWI,EAAMoB,SAASC,IAAIH,GAAc,SAACI,WAKPC,EAJ1C,OAAKvB,EAAMwB,eAAeF,GAItBG,MAAMC,eAAOC,EAACL,EAAMM,cAAND,EAAa/B,UACtBI,EAAM6B,aAAaP,EAAkC,CAC1D3B,eAAQ4B,EAAAD,EAAMM,cAANL,EAAaV,SAAUA,EAC/BA,MAAAA,EACAF,SAAAA,IAIGX,EAAM6B,aAAaP,EAAkC,CAC1D3B,eAAQmC,EAAAR,EAAMM,cAANE,EAAajB,SAAUA,EAC/BkB,QAAS,WAAA,IAAAC,EAAA,OAAMrB,SAAQqB,EAACV,EAAMM,cAANI,EAAanB,UAb9B,QAiBX,OAAOb,gBAACC,mBAAeJ,GAAOD,IAGhCoB,EAAKZ,UAAY,CACfR,SAAUS,EAAUI,KAAKC,WACzBG,MAAOR,EAAUC,UAAU,CAACD,EAAUE,OAAQF,EAAU4B,SAASvB,WACjEC,SAAUN,EAAUO,KAAKF,YChEpB,MCHMwB,EAAY/C,EAAOgD,IAAG9C,IAAAA,EAAAC,0DCItB8C,EAAW,SAAH1C,OAAM2C,EAAE3C,EAAF2C,GACzBC,EAA0BC,WAAS,IAA5BC,EAAKF,KAAEG,EAAQH,KA0BtB,OAxBAI,aAAU,WAERD,EAAS,CACPD,MAAS,CACP,CACEG,KAAQ,mCACRC,KAAQ,kBAEV,CACED,KAAQ,kCACRC,KAAQ,WAEV,CACED,KAAQ,WACRC,KAAQ,gBAEV,CACED,KAAQ,+CACRC,KAAQ,qBAIb,IAGD5C,gBAACC,OACCD,yCAAiBqC,SAAQG,KCjClBK,EAAW,WACtB,OACE7C,2BACEA,yCCOO8C,EAAO,SAAClB,GACnB,IJPMmB,EIOAC,EAAQC,kBACNC,EAAaC,gBAAbD,SACFE,EAAUC,eAEVC,GJXAP,EAAqD,CACzDQ,GAAI,CACFf,MAAO,QACPgB,KAAM,QAERC,QAAS,CACPjB,MAAO,WACPgB,KAAM,SAERE,GAAI,CACFlB,MAAO,WACPgB,KAAM,YIAY5B,EAAM+B,WJIEZ,EAAU,SIFlCa,EAAYC,WAAQ,WACxB,OAAOX,EAASY,MAAM,KAAK,IAAM,UAChC,CAACZ,IAEJ,OACElD,gCACEA,gBAACgB,GACCH,MAAO+C,EACPjD,SAAU,SAACE,GAAK,OAAKuC,EAAQW,KAAQf,EAAMgB,QAAOnD,KAElDb,gBAACT,GAAIsB,MAAM,SAASyC,EAAEd,OACtBxC,gBAACT,GAAIsB,MAAM,QAAQyC,EAAEE,OAEvBxD,gBAACiE,YAASC,SAAUtC,EAAMuC,SACxBnE,gBAACoE,cACCpE,gBAACqE,SACCC,KAAMtB,EAAMsB,KACZC,SACAC,OAAQ,SAACC,GAAU,OAAKzE,gBAACoC,mBAAaqC,GAAYpC,GAAIT,EAAMS,SAE9DrC,gBAACqE,SACCC,KAAStB,EAAMsB,cACfC,SACAC,OAAQ,SAACC,GAAU,OAAKzE,gBAACoC,mBAAaqC,GAAYpC,GAAIT,EAAMS,SAE9DrC,gBAACqE,SAAMC,KAAStB,EAAMsB,aAAaI,UAAW7B,+BCjClCjB,GACpB,OAAO5B,gBAAC8C,mBAASlB"}
|
|
1
|
+
{"version":3,"file":"code7-leia.cjs.production.min.js","sources":["../src/components/Tabs/styles.tsx","../src/components/Tabs/index.tsx","../src/utils/getLanguage.tsx","../src/components/FileArea/styles.tsx","../src/components/FileArea/index.tsx","../src/components/TestArea/index.tsx","../src/Leia.tsx","../src/index.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport { ReactNode } from 'react';\n\ninterface TabProps {\n children: ReactNode;\n}\n\ninterface OptionProps {\n children: ReactNode;\n onClick: () => void;\n}\n\nexport const TabsPane = styled.ul`\n width: max-content;\n display: flex;\n align-items: center;\n border-bottom: 1px solid var(--neutral-1);\n`;\n\nexport const Tab = styled.li<TabProps>`\n padding: 12px;\n color: var(--neutral-3);\n font-size: 0.875rem;\n font-weight: normal;\n position: relative;\n cursor: pointer;\n\n svg {\n fill: var(--neutral-3) !important;\n margin-left: 8px;\n }\n\n &.active {\n color: var(--primary-700-light);\n\n svg {\n fill: var(--primary-700-light) !important;\n }\n\n ::after {\n content: '';\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 2px;\n background-color: var(--primary-700-light);\n }\n }\n\n &:not(:last-child) {\n margin-right: 8px;\n }\n`;\n\nexport const DropdownContainer = styled.div`\n position: absolute;\n left: 0px;\n top: 40px;\n display: flex;\n flex-direction: column;\n\n background: #ffffff;\n\n border: 1px solid #979aa5;\n box-sizing: border-box;\n box-shadow: 0px 6px 12px -6px rgba(24, 39, 75, 0.12),\n 0px 8px 24px -4px rgba(24, 39, 75, 0.08);\n border-radius: 4px;\n padding: 8px;\n z-index: 2;\n`;\n\nexport const Option = styled.div<OptionProps>`\n padding: 8px;\n font-size: 14px;\n border-radius: 4px;\n cursor: pointer;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover {\n background-color: var(--primary-800-light);\n color: white;\n }\n`;\n","import React, { ReactNode } from 'react';\nimport PropTypes from 'prop-types';\nimport cc from 'classcat';\n\nimport * as S from './styles';\n\ninterface TabProps {\n children: ReactNode;\n active?: boolean;\n}\n\ninterface ITabsProps {\n children: ReactNode;\n value: string | number;\n onChange: (e: any) => void;\n active?: boolean;\n}\n\nexport const Tab = ({ active, children, ...rest }: TabProps) => {\n return (\n <S.Tab className={cc({ active })} {...rest}>\n {children}\n </S.Tab>\n );\n};\n\nTab.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]).isRequired,\n onChange: PropTypes.func,\n value: PropTypes.string,\n active: PropTypes.bool,\n};\n\nTab.defaultProps = {\n onChange: () => {},\n value: '',\n active: false,\n};\n\nexport const Tabs = ({ children: childrenProp, value, onChange, ...rest }: ITabsProps) => {\n const children = React.Children.map(childrenProp, (child) => {\n if (!React.isValidElement(child)) {\n return null;\n }\n\n if (Array.isArray(child.props?.children)) {\n return React.cloneElement(child as React.ReactElement<any>, {\n active: child.props?.value === value,\n value,\n onChange,\n });\n }\n\n return React.cloneElement(child as React.ReactElement<any>, {\n active: child.props?.value === value,\n onClick: () => onChange(child.props?.value),\n });\n });\n\n return <S.TabsPane {...rest}>{children}</S.TabsPane>;\n};\n\nTabs.propTypes = {\n children: PropTypes.node.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n onChange: PropTypes.func.isRequired,\n};\n","type Language = {\n files: string;\n test: string;\n};\n\nexport const getLanguage = (language: keyof Record<'en' | 'pt-br' | 'es', Language>): Language => {\n const languages: Record<'en' | 'pt-br' | 'es', Language> = {\n en: {\n files: 'Files',\n test: 'Test',\n },\n 'pt-br': {\n files: 'Arquivos',\n test: 'Teste',\n },\n es: {\n files: 'Archivos',\n test: 'Prueba',\n }\n };\n\n return languages[language] || languages['pt-br'];\n};\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n display: flex;\n justify-content: center;\n`;\n","import React, { useEffect, useState} from 'react';\n\n// import { formatAxios } from '../../utils/formatAxios'\n\nimport { useLocation } from 'react-router-dom';\n\nimport type { FileData } from '../../interface/FileData'\n\nimport * as S from './styles';\n\nexport const FileArea = () => {\n const [files, setFiles] = useState<FileData[]>([]);\n const { pathname } = useLocation();\n const id = pathname.split('/')[4]\n\n useEffect(() => {\n setFiles([\n {\n \"name\": \"Documentação conceitual Code7_v3\",\n \"tags\": \"boteria, code7\"\n },\n {\n \"name\": \"PAE_Programa_Apoio_ao_Empregado\",\n \"tags\": \"pae, vr\"\n },\n {\n \"name\": \"Vidalink\",\n \"tags\": \"vidalink, vr\"\n },\n {\n \"name\": \"[GUIA PRÁTICO] Como criar o chatbot perfeito\",\n \"tags\": \"ebook, code7\"\n }\n ])\n }, [])\n\n useEffect(() => {\n console.log('files, id: ', files, id)\n }, [files])\n\n const renderFiles = () => {\n if (files.length === 0) {\n return null;\n }\n \n return (\n <ul>\n {files.map(({ name, tags }, index) => (\n <li key={index}>\n <div>{name}</div>\n <div>{tags}</div>\n </li>\n ))}\n </ul>\n );\n }\n\n return (\n <S.Container>\n <div>File Area</div>\n {renderFiles()}\n </S.Container>\n );\n};","import React from 'react';\n\nexport const TestArea = () => {\n return (\n <div>\n <p>Teste Area</p>\n \n </div>\n );\n};","import React, { useMemo, Suspense } from 'react';\n\nimport { Route, useLocation, useRouteMatch, useHistory, Switch as SwitchRoute } from 'react-router-dom';\n\nimport type { Props } from './index';\nimport { Tab, Tabs } from './components/Tabs'\n\nimport { getLanguage } from './utils/getLanguage'\n\nimport { FileArea } from './components/FileArea';\nimport { TestArea } from './components/TestArea';\n\nexport const Leia = (props: Props) => {\n const match = useRouteMatch();\n const { pathname } = useLocation();\n const history = useHistory();\n\n const t = getLanguage(props.language)\n\n const activeTab = useMemo(() => {\n return pathname.split('/')[5] || 'files';\n }, [pathname]);\n\n return (\n <>\n <Tabs\n value={activeTab}\n onChange={(value) => history.push(`${match.url}/${value}`)}\n >\n <Tab value=\"files\">{t.files}</Tab>\n <Tab value=\"test\">{t.test}</Tab>\n </Tabs>\n <Suspense fallback={props.loading}>\n <SwitchRoute>\n <Route path={`${match.path}`} exact component={FileArea} />\n <Route path={`${match.path}/files`} component={FileArea} />\n <Route path={`${match.path}/test`} component={TestArea} />\n </SwitchRoute>\n </Suspense>\n </>\n );\n};","import type { PropsWithChildren, ReactElement } from 'react';\nimport React from 'react';\nimport { Leia } from './Leia';\n\nexport type Props = PropsWithChildren<{\n id: string;\n activeTab: string;\n language: \"en\" | \"pt-br\" | \"es\";\n loading: ReactElement\n}>;\n\nexport function Code7(props: Props) {\n return <Leia {...props} />;\n}"],"names":["TabsPane","styled","ul","_templateObject","_taggedTemplateLiteralLoose","Tab","li","_templateObject2","_ref","active","children","rest","_objectWithoutPropertiesLoose","_excluded","React","S","className","cc","propTypes","PropTypes","oneOfType","string","element","node","isRequired","onChange","func","value","bool","defaultProps","Tabs","_ref2","childrenProp","_excluded2","Children","map","child","_child$props2","isValidElement","Array","isArray","_child$props","props","cloneElement","_child$props3","onClick","_child$props4","number","Container","div","FileArea","_useState","useState","files","setFiles","id","useLocation","pathname","split","useEffect","name","tags","console","log","length","index","key","TestArea","Leia","languages","match","useRouteMatch","history","useHistory","t","en","test","pt-br","es","language","activeTab","useMemo","push","url","Suspense","fallback","loading","SwitchRoute","Route","path","exact","component"],"mappings":"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"}
|
package/dist/code7-leia.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useState, useEffect, useMemo, Suspense } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { useLocation, useRouteMatch, useHistory, Switch, Route } from 'react-router-dom';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
4
|
import cc from 'classcat';
|
|
5
5
|
import styled from 'styled-components';
|
|
@@ -106,30 +106,44 @@ var getLanguage = function getLanguage(language) {
|
|
|
106
106
|
var _templateObject$1;
|
|
107
107
|
var Container = /*#__PURE__*/styled.div(_templateObject$1 || (_templateObject$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n justify-content: center;\n"])));
|
|
108
108
|
|
|
109
|
-
var FileArea = function FileArea(
|
|
110
|
-
var
|
|
111
|
-
var _useState = useState({}),
|
|
109
|
+
var FileArea = function FileArea() {
|
|
110
|
+
var _useState = useState([]),
|
|
112
111
|
files = _useState[0],
|
|
113
112
|
setFiles = _useState[1];
|
|
113
|
+
var _useLocation = useLocation(),
|
|
114
|
+
pathname = _useLocation.pathname;
|
|
115
|
+
var id = pathname.split('/')[4];
|
|
114
116
|
useEffect(function () {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
"
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
"tags": "ebook, code7"
|
|
129
|
-
}]
|
|
130
|
-
});
|
|
117
|
+
setFiles([{
|
|
118
|
+
"name": "Documentação conceitual Code7_v3",
|
|
119
|
+
"tags": "boteria, code7"
|
|
120
|
+
}, {
|
|
121
|
+
"name": "PAE_Programa_Apoio_ao_Empregado",
|
|
122
|
+
"tags": "pae, vr"
|
|
123
|
+
}, {
|
|
124
|
+
"name": "Vidalink",
|
|
125
|
+
"tags": "vidalink, vr"
|
|
126
|
+
}, {
|
|
127
|
+
"name": "[GUIA PRÁTICO] Como criar o chatbot perfeito",
|
|
128
|
+
"tags": "ebook, code7"
|
|
129
|
+
}]);
|
|
131
130
|
}, []);
|
|
132
|
-
|
|
131
|
+
useEffect(function () {
|
|
132
|
+
console.log('files, id: ', files, id);
|
|
133
|
+
}, [files]);
|
|
134
|
+
var renderFiles = function renderFiles() {
|
|
135
|
+
if (files.length === 0) {
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
return React.createElement("ul", null, files.map(function (_ref, index) {
|
|
139
|
+
var name = _ref.name,
|
|
140
|
+
tags = _ref.tags;
|
|
141
|
+
return React.createElement("li", {
|
|
142
|
+
key: index
|
|
143
|
+
}, React.createElement("div", null, name), React.createElement("div", null, tags));
|
|
144
|
+
}));
|
|
145
|
+
};
|
|
146
|
+
return React.createElement(Container, null, React.createElement("div", null, "File Area"), renderFiles());
|
|
133
147
|
};
|
|
134
148
|
|
|
135
149
|
var TestArea = function TestArea() {
|
|
@@ -157,21 +171,12 @@ var Leia = function Leia(props) {
|
|
|
157
171
|
}, t.test)), React.createElement(Suspense, {
|
|
158
172
|
fallback: props.loading
|
|
159
173
|
}, React.createElement(Switch, null, React.createElement(Route, {
|
|
160
|
-
path: match.path,
|
|
174
|
+
path: "" + match.path,
|
|
161
175
|
exact: true,
|
|
162
|
-
|
|
163
|
-
return React.createElement(FileArea, Object.assign({}, routeProps, {
|
|
164
|
-
id: props.id
|
|
165
|
-
}));
|
|
166
|
-
}
|
|
176
|
+
component: FileArea
|
|
167
177
|
}), React.createElement(Route, {
|
|
168
178
|
path: match.path + "/files",
|
|
169
|
-
|
|
170
|
-
render: function render(routeProps) {
|
|
171
|
-
return React.createElement(FileArea, Object.assign({}, routeProps, {
|
|
172
|
-
id: props.id
|
|
173
|
-
}));
|
|
174
|
-
}
|
|
179
|
+
component: FileArea
|
|
175
180
|
}), React.createElement(Route, {
|
|
176
181
|
path: match.path + "/test",
|
|
177
182
|
component: TestArea
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code7-leia.esm.js","sources":["../src/components/Tabs/styles.tsx","../src/components/Tabs/index.tsx","../src/utils/getLanguage.tsx","../src/components/FileArea/styles.tsx","../src/components/FileArea/index.tsx","../src/components/TestArea/index.tsx","../src/Leia.tsx","../src/index.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport { ReactNode } from 'react';\n\ninterface TabProps {\n children: ReactNode;\n}\n\ninterface OptionProps {\n children: ReactNode;\n onClick: () => void;\n}\n\nexport const TabsPane = styled.ul`\n width: max-content;\n display: flex;\n align-items: center;\n border-bottom: 1px solid var(--neutral-1);\n`;\n\nexport const Tab = styled.li<TabProps>`\n padding: 12px;\n color: var(--neutral-3);\n font-size: 0.875rem;\n font-weight: normal;\n position: relative;\n cursor: pointer;\n\n svg {\n fill: var(--neutral-3) !important;\n margin-left: 8px;\n }\n\n &.active {\n color: var(--primary-700-light);\n\n svg {\n fill: var(--primary-700-light) !important;\n }\n\n ::after {\n content: '';\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 2px;\n background-color: var(--primary-700-light);\n }\n }\n\n &:not(:last-child) {\n margin-right: 8px;\n }\n`;\n\nexport const DropdownContainer = styled.div`\n position: absolute;\n left: 0px;\n top: 40px;\n display: flex;\n flex-direction: column;\n\n background: #ffffff;\n\n border: 1px solid #979aa5;\n box-sizing: border-box;\n box-shadow: 0px 6px 12px -6px rgba(24, 39, 75, 0.12),\n 0px 8px 24px -4px rgba(24, 39, 75, 0.08);\n border-radius: 4px;\n padding: 8px;\n z-index: 2;\n`;\n\nexport const Option = styled.div<OptionProps>`\n padding: 8px;\n font-size: 14px;\n border-radius: 4px;\n cursor: pointer;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover {\n background-color: var(--primary-800-light);\n color: white;\n }\n`;\n","import React, { ReactNode } from 'react';\nimport PropTypes from 'prop-types';\nimport cc from 'classcat';\n\nimport * as S from './styles';\n\ninterface TabProps {\n children: ReactNode;\n active?: boolean;\n}\n\ninterface ITabsProps {\n children: ReactNode;\n value: string | number;\n onChange: (e: any) => void;\n active?: boolean;\n}\n\nexport const Tab = ({ active, children, ...rest }: TabProps) => {\n return (\n <S.Tab className={cc({ active })} {...rest}>\n {children}\n </S.Tab>\n );\n};\n\nTab.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]).isRequired,\n onChange: PropTypes.func,\n value: PropTypes.string,\n active: PropTypes.bool,\n};\n\nTab.defaultProps = {\n onChange: () => {},\n value: '',\n active: false,\n};\n\nexport const Tabs = ({ children: childrenProp, value, onChange, ...rest }: ITabsProps) => {\n const children = React.Children.map(childrenProp, (child) => {\n if (!React.isValidElement(child)) {\n return null;\n }\n\n if (Array.isArray(child.props?.children)) {\n return React.cloneElement(child as React.ReactElement<any>, {\n active: child.props?.value === value,\n value,\n onChange,\n });\n }\n\n return React.cloneElement(child as React.ReactElement<any>, {\n active: child.props?.value === value,\n onClick: () => onChange(child.props?.value),\n });\n });\n\n return <S.TabsPane {...rest}>{children}</S.TabsPane>;\n};\n\nTabs.propTypes = {\n children: PropTypes.node.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n onChange: PropTypes.func.isRequired,\n};\n","type Language = {\n files: string;\n test: string;\n};\n\nexport const getLanguage = (language: keyof Record<'en' | 'pt-br' | 'es', Language>): Language => {\n const languages: Record<'en' | 'pt-br' | 'es', Language> = {\n en: {\n files: 'Files',\n test: 'Test',\n },\n 'pt-br': {\n files: 'Arquivos',\n test: 'Teste',\n },\n es: {\n files: 'Archivos',\n test: 'Prueba',\n }\n };\n\n return languages[language] || languages['pt-br'];\n};\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n display: flex;\n justify-content: center;\n`;\n","import React, { useEffect, useState} from 'react';\n\n// import { formatAxios } from '../../utils/formatAxios'\n\nimport * as S from './styles';\n\nexport const FileArea = ({ id }: any) => {\n const [files, setFiles] = useState({});\n\n useEffect(() => {\n // setFiles(await formatAxios('get', `http://127.0.0.1:5000/files/${id}`, false, ''))\n setFiles({\n \"files\": [\n {\n \"name\": \"Documentação conceitual Code7_v3\",\n \"tags\": \"boteria, code7\"\n },\n {\n \"name\": \"PAE_Programa_Apoio_ao_Empregado\",\n \"tags\": \"pae, vr\"\n },\n {\n \"name\": \"Vidalink\",\n \"tags\": \"vidalink, vr\"\n },\n {\n \"name\": \"[GUIA PRÁTICO] Como criar o chatbot perfeito\",\n \"tags\": \"ebook, code7\"\n }\n ]\n })\n }, [])\n\n return (\n <S.Container>\n <div>File Area ${id} / ${files}</div>\n \n </S.Container>\n );\n};","import React from 'react';\n\nexport const TestArea = () => {\n return (\n <div>\n <p>Teste Area</p>\n \n </div>\n );\n};","import React, { useMemo, Suspense } from 'react';\n\nimport { Route, useLocation, useRouteMatch, useHistory, Switch as SwitchRoute } from 'react-router-dom';\n\nimport type { Props } from './index';\nimport { Tab, Tabs } from './components/Tabs'\n\nimport { getLanguage } from './utils/getLanguage'\n\nimport { FileArea } from './components/FileArea';\nimport { TestArea } from './components/TestArea';\n\nexport const Leia = (props: Props) => {\n const match = useRouteMatch();\n const { pathname } = useLocation();\n const history = useHistory();\n\n const t = getLanguage(props.language)\n\n const activeTab = useMemo(() => {\n return pathname.split('/')[5] || 'files';\n }, [pathname]);\n\n return (\n <>\n <Tabs\n value={activeTab}\n onChange={(value) => history.push(`${match.url}/${value}`)}\n >\n <Tab value=\"files\">{t.files}</Tab>\n <Tab value=\"test\">{t.test}</Tab>\n </Tabs>\n <Suspense fallback={props.loading}>\n <SwitchRoute>\n <Route\n path={match.path}\n exact\n render={(routeProps) => <FileArea {...routeProps} id={props.id} />}\n />\n <Route\n path={`${match.path}/files`}\n exact\n render={(routeProps) => <FileArea {...routeProps} id={props.id} />}\n />\n <Route path={`${match.path}/test`} component={TestArea} />\n </SwitchRoute>\n </Suspense>\n </>\n );\n};","import type { PropsWithChildren, ReactElement } from 'react';\nimport React from 'react';\nimport { Leia } from './Leia';\n\nexport type Props = PropsWithChildren<{\n id: string;\n activeTab: string;\n language: \"en\" | \"pt-br\" | \"es\";\n loading: ReactElement\n}>;\n\nexport function Code7(props: Props) {\n return <Leia {...props} />;\n}"],"names":["TabsPane","styled","ul","_templateObject","_taggedTemplateLiteralLoose","Tab","li","_templateObject2","_ref","active","children","rest","_objectWithoutPropertiesLoose","_excluded","React","S","className","cc","propTypes","PropTypes","oneOfType","string","element","node","isRequired","onChange","func","value","bool","defaultProps","Tabs","_ref2","childrenProp","_excluded2","Children","map","child","isValidElement","Array","isArray","_child$props","props","_child$props2","cloneElement","_child$props3","onClick","_child$props4","number","getLanguage","language","languages","en","files","test","es","Container","div","FileArea","id","_useState","useState","setFiles","useEffect","TestArea","Leia","match","useRouteMatch","_useLocation","useLocation","pathname","history","useHistory","t","activeTab","useMemo","split","push","url","Suspense","fallback","loading","SwitchRoute","Route","path","exact","render","routeProps","component","Code7"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"code7-leia.esm.js","sources":["../src/components/Tabs/styles.tsx","../src/components/Tabs/index.tsx","../src/utils/getLanguage.tsx","../src/components/FileArea/styles.tsx","../src/components/FileArea/index.tsx","../src/components/TestArea/index.tsx","../src/Leia.tsx","../src/index.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport { ReactNode } from 'react';\n\ninterface TabProps {\n children: ReactNode;\n}\n\ninterface OptionProps {\n children: ReactNode;\n onClick: () => void;\n}\n\nexport const TabsPane = styled.ul`\n width: max-content;\n display: flex;\n align-items: center;\n border-bottom: 1px solid var(--neutral-1);\n`;\n\nexport const Tab = styled.li<TabProps>`\n padding: 12px;\n color: var(--neutral-3);\n font-size: 0.875rem;\n font-weight: normal;\n position: relative;\n cursor: pointer;\n\n svg {\n fill: var(--neutral-3) !important;\n margin-left: 8px;\n }\n\n &.active {\n color: var(--primary-700-light);\n\n svg {\n fill: var(--primary-700-light) !important;\n }\n\n ::after {\n content: '';\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 2px;\n background-color: var(--primary-700-light);\n }\n }\n\n &:not(:last-child) {\n margin-right: 8px;\n }\n`;\n\nexport const DropdownContainer = styled.div`\n position: absolute;\n left: 0px;\n top: 40px;\n display: flex;\n flex-direction: column;\n\n background: #ffffff;\n\n border: 1px solid #979aa5;\n box-sizing: border-box;\n box-shadow: 0px 6px 12px -6px rgba(24, 39, 75, 0.12),\n 0px 8px 24px -4px rgba(24, 39, 75, 0.08);\n border-radius: 4px;\n padding: 8px;\n z-index: 2;\n`;\n\nexport const Option = styled.div<OptionProps>`\n padding: 8px;\n font-size: 14px;\n border-radius: 4px;\n cursor: pointer;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover {\n background-color: var(--primary-800-light);\n color: white;\n }\n`;\n","import React, { ReactNode } from 'react';\nimport PropTypes from 'prop-types';\nimport cc from 'classcat';\n\nimport * as S from './styles';\n\ninterface TabProps {\n children: ReactNode;\n active?: boolean;\n}\n\ninterface ITabsProps {\n children: ReactNode;\n value: string | number;\n onChange: (e: any) => void;\n active?: boolean;\n}\n\nexport const Tab = ({ active, children, ...rest }: TabProps) => {\n return (\n <S.Tab className={cc({ active })} {...rest}>\n {children}\n </S.Tab>\n );\n};\n\nTab.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]).isRequired,\n onChange: PropTypes.func,\n value: PropTypes.string,\n active: PropTypes.bool,\n};\n\nTab.defaultProps = {\n onChange: () => {},\n value: '',\n active: false,\n};\n\nexport const Tabs = ({ children: childrenProp, value, onChange, ...rest }: ITabsProps) => {\n const children = React.Children.map(childrenProp, (child) => {\n if (!React.isValidElement(child)) {\n return null;\n }\n\n if (Array.isArray(child.props?.children)) {\n return React.cloneElement(child as React.ReactElement<any>, {\n active: child.props?.value === value,\n value,\n onChange,\n });\n }\n\n return React.cloneElement(child as React.ReactElement<any>, {\n active: child.props?.value === value,\n onClick: () => onChange(child.props?.value),\n });\n });\n\n return <S.TabsPane {...rest}>{children}</S.TabsPane>;\n};\n\nTabs.propTypes = {\n children: PropTypes.node.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n onChange: PropTypes.func.isRequired,\n};\n","type Language = {\n files: string;\n test: string;\n};\n\nexport const getLanguage = (language: keyof Record<'en' | 'pt-br' | 'es', Language>): Language => {\n const languages: Record<'en' | 'pt-br' | 'es', Language> = {\n en: {\n files: 'Files',\n test: 'Test',\n },\n 'pt-br': {\n files: 'Arquivos',\n test: 'Teste',\n },\n es: {\n files: 'Archivos',\n test: 'Prueba',\n }\n };\n\n return languages[language] || languages['pt-br'];\n};\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n display: flex;\n justify-content: center;\n`;\n","import React, { useEffect, useState} from 'react';\n\n// import { formatAxios } from '../../utils/formatAxios'\n\nimport { useLocation } from 'react-router-dom';\n\nimport type { FileData } from '../../interface/FileData'\n\nimport * as S from './styles';\n\nexport const FileArea = () => {\n const [files, setFiles] = useState<FileData[]>([]);\n const { pathname } = useLocation();\n const id = pathname.split('/')[4]\n\n useEffect(() => {\n setFiles([\n {\n \"name\": \"Documentação conceitual Code7_v3\",\n \"tags\": \"boteria, code7\"\n },\n {\n \"name\": \"PAE_Programa_Apoio_ao_Empregado\",\n \"tags\": \"pae, vr\"\n },\n {\n \"name\": \"Vidalink\",\n \"tags\": \"vidalink, vr\"\n },\n {\n \"name\": \"[GUIA PRÁTICO] Como criar o chatbot perfeito\",\n \"tags\": \"ebook, code7\"\n }\n ])\n }, [])\n\n useEffect(() => {\n console.log('files, id: ', files, id)\n }, [files])\n\n const renderFiles = () => {\n if (files.length === 0) {\n return null;\n }\n \n return (\n <ul>\n {files.map(({ name, tags }, index) => (\n <li key={index}>\n <div>{name}</div>\n <div>{tags}</div>\n </li>\n ))}\n </ul>\n );\n }\n\n return (\n <S.Container>\n <div>File Area</div>\n {renderFiles()}\n </S.Container>\n );\n};","import React from 'react';\n\nexport const TestArea = () => {\n return (\n <div>\n <p>Teste Area</p>\n \n </div>\n );\n};","import React, { useMemo, Suspense } from 'react';\n\nimport { Route, useLocation, useRouteMatch, useHistory, Switch as SwitchRoute } from 'react-router-dom';\n\nimport type { Props } from './index';\nimport { Tab, Tabs } from './components/Tabs'\n\nimport { getLanguage } from './utils/getLanguage'\n\nimport { FileArea } from './components/FileArea';\nimport { TestArea } from './components/TestArea';\n\nexport const Leia = (props: Props) => {\n const match = useRouteMatch();\n const { pathname } = useLocation();\n const history = useHistory();\n\n const t = getLanguage(props.language)\n\n const activeTab = useMemo(() => {\n return pathname.split('/')[5] || 'files';\n }, [pathname]);\n\n return (\n <>\n <Tabs\n value={activeTab}\n onChange={(value) => history.push(`${match.url}/${value}`)}\n >\n <Tab value=\"files\">{t.files}</Tab>\n <Tab value=\"test\">{t.test}</Tab>\n </Tabs>\n <Suspense fallback={props.loading}>\n <SwitchRoute>\n <Route path={`${match.path}`} exact component={FileArea} />\n <Route path={`${match.path}/files`} component={FileArea} />\n <Route path={`${match.path}/test`} component={TestArea} />\n </SwitchRoute>\n </Suspense>\n </>\n );\n};","import type { PropsWithChildren, ReactElement } from 'react';\nimport React from 'react';\nimport { Leia } from './Leia';\n\nexport type Props = PropsWithChildren<{\n id: string;\n activeTab: string;\n language: \"en\" | \"pt-br\" | \"es\";\n loading: ReactElement\n}>;\n\nexport function Code7(props: Props) {\n return <Leia {...props} />;\n}"],"names":["TabsPane","styled","ul","_templateObject","_taggedTemplateLiteralLoose","Tab","li","_templateObject2","_ref","active","children","rest","_objectWithoutPropertiesLoose","_excluded","React","S","className","cc","propTypes","PropTypes","oneOfType","string","element","node","isRequired","onChange","func","value","bool","defaultProps","Tabs","_ref2","childrenProp","_excluded2","Children","map","child","isValidElement","Array","isArray","_child$props","props","_child$props2","cloneElement","_child$props3","onClick","_child$props4","number","getLanguage","language","languages","en","files","test","es","Container","div","FileArea","_useState","useState","setFiles","_useLocation","useLocation","pathname","id","split","useEffect","console","log","renderFiles","length","index","name","tags","key","TestArea","Leia","match","useRouteMatch","history","useHistory","t","activeTab","useMemo","push","url","Suspense","fallback","loading","SwitchRoute","Route","path","exact","component","Code7"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
export declare const FileArea: (
|
|
2
|
+
export declare const FileArea: () => React.JSX.Element;
|
package/package.json
CHANGED
package/src/Leia.tsx
CHANGED
|
@@ -32,16 +32,8 @@ export const Leia = (props: Props) => {
|
|
|
32
32
|
</Tabs>
|
|
33
33
|
<Suspense fallback={props.loading}>
|
|
34
34
|
<SwitchRoute>
|
|
35
|
-
<Route
|
|
36
|
-
|
|
37
|
-
exact
|
|
38
|
-
render={(routeProps) => <FileArea {...routeProps} id={props.id} />}
|
|
39
|
-
/>
|
|
40
|
-
<Route
|
|
41
|
-
path={`${match.path}/files`}
|
|
42
|
-
exact
|
|
43
|
-
render={(routeProps) => <FileArea {...routeProps} id={props.id} />}
|
|
44
|
-
/>
|
|
35
|
+
<Route path={`${match.path}`} exact component={FileArea} />
|
|
36
|
+
<Route path={`${match.path}/files`} component={FileArea} />
|
|
45
37
|
<Route path={`${match.path}/test`} component={TestArea} />
|
|
46
38
|
</SwitchRoute>
|
|
47
39
|
</Suspense>
|
|
@@ -2,15 +2,19 @@ import React, { useEffect, useState} from 'react';
|
|
|
2
2
|
|
|
3
3
|
// import { formatAxios } from '../../utils/formatAxios'
|
|
4
4
|
|
|
5
|
+
import { useLocation } from 'react-router-dom';
|
|
6
|
+
|
|
7
|
+
import type { FileData } from '../../interface/FileData'
|
|
8
|
+
|
|
5
9
|
import * as S from './styles';
|
|
6
10
|
|
|
7
|
-
export const FileArea = (
|
|
8
|
-
const [files, setFiles] = useState(
|
|
11
|
+
export const FileArea = () => {
|
|
12
|
+
const [files, setFiles] = useState<FileData[]>([]);
|
|
13
|
+
const { pathname } = useLocation();
|
|
14
|
+
const id = pathname.split('/')[4]
|
|
9
15
|
|
|
10
16
|
useEffect(() => {
|
|
11
|
-
|
|
12
|
-
setFiles({
|
|
13
|
-
"files": [
|
|
17
|
+
setFiles([
|
|
14
18
|
{
|
|
15
19
|
"name": "Documentação conceitual Code7_v3",
|
|
16
20
|
"tags": "boteria, code7"
|
|
@@ -27,14 +31,34 @@ export const FileArea = ({ id }: any) => {
|
|
|
27
31
|
"name": "[GUIA PRÁTICO] Como criar o chatbot perfeito",
|
|
28
32
|
"tags": "ebook, code7"
|
|
29
33
|
}
|
|
30
|
-
]
|
|
31
|
-
})
|
|
34
|
+
])
|
|
32
35
|
}, [])
|
|
33
36
|
|
|
37
|
+
useEffect(() => {
|
|
38
|
+
console.log('files, id: ', files, id)
|
|
39
|
+
}, [files])
|
|
40
|
+
|
|
41
|
+
const renderFiles = () => {
|
|
42
|
+
if (files.length === 0) {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return (
|
|
47
|
+
<ul>
|
|
48
|
+
{files.map(({ name, tags }, index) => (
|
|
49
|
+
<li key={index}>
|
|
50
|
+
<div>{name}</div>
|
|
51
|
+
<div>{tags}</div>
|
|
52
|
+
</li>
|
|
53
|
+
))}
|
|
54
|
+
</ul>
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
|
|
34
58
|
return (
|
|
35
59
|
<S.Container>
|
|
36
|
-
<div>File Area
|
|
37
|
-
|
|
60
|
+
<div>File Area</div>
|
|
61
|
+
{renderFiles()}
|
|
38
62
|
</S.Container>
|
|
39
63
|
);
|
|
40
64
|
};
|