Browse Source

react strap 공통 컴포넌트 적용(작업중)

master
박상현 8 months ago
parent
commit
75fc7116fb
  1. 2
      src/components/account/find/AccountFindPassword.js
  2. 2
      src/components/account/find/AccountFindTab.js
  3. 2
      src/components/account/find/AccountFindUserId.js
  4. 2
      src/components/account/login/AccountLogin.js
  5. 5
      src/components/account/mypage/AccountMypageForm.js
  6. 12
      src/components/account/mypage/AccountMypagePwForm.js
  7. 6
      src/components/account/register/AccountRegisterComplete.js
  8. 4
      src/components/account/register/AccountRegisterForm.js
  9. 4
      src/components/account/register/AccountRegisterTerm.js
  10. 21
      src/components/analysis/history/AnalysisHistoryDetailGrid.js
  11. 21
      src/components/analysis/history/AnalysisHistoryDetailSearch.js
  12. 2
      src/components/analysis/history/AnalysisHistoryDetailStatic.js
  13. 2
      src/components/analysis/history/AnalysisHistoryGrid.js
  14. 2
      src/components/analysis/simulation/AnalysisSimuationInfo.js
  15. 3
      src/components/analysis/simulation/AnalysisSimulationDetail.js
  16. 2
      src/components/analysis/simulation/AnalysisSimulationReport.js
  17. 2
      src/components/basis/BasisDataGrid.js
  18. 2
      src/components/basis/BasisGroupGrid.js
  19. 3
      src/components/basis/BasisSearch.js
  20. 2
      src/components/basis/dron/BasisDronForm.js
  21. 5
      src/components/basis/dron/BasisDronImage.js
  22. 2
      src/components/basis/dron/BasisDronTab.js
  23. 4
      src/components/basis/dron/BasisIdntform.js
  24. 4
      src/components/basis/flight/plan/FlightPlanGroupGrid.js
  25. 2
      src/components/basis/flight/schedule/FlightScheduleGrid.js
  26. 3
      src/components/basis/flight/schedule/FlightScheduleSearch.js
  27. 4
      src/components/basis/group/BaisGroupForm.js
  28. 2
      src/components/basis/group/BasisGroupApprovalSearch.js
  29. 2
      src/components/basis/group/BasisGroupDetailJoinSearch.js
  30. 2
      src/components/basis/group/BasisGroupUsersSearch.js
  31. 30
      src/components/charts/apex/ApexAreaCharts.js
  32. 66
      src/components/charts/apex/index.js
  33. 2
      src/components/cstmrService/faq/FaqForm.js
  34. 7
      src/components/cstmrService/faq/FaqSearchBox.js
  35. 2
      src/components/cstmrService/faq/FaqTab.js
  36. 2
      src/components/cstmrService/inquiry/InquiryWrite.js
  37. 2
      src/components/cstmrService/inquiry/QnaDetail.js
  38. 4
      src/components/cstmrService/inquiry/QnaGrid.js
  39. 3
      src/components/cstmrService/inquiry/QnaSearchBox.js
  40. 2
      src/components/dashboard/DashboardDronList.js
  41. 2
      src/components/dashboard/DashboardGroupList.js
  42. 2
      src/components/dashboard/DashboardMenu.js
  43. 2
      src/components/dashboard/DashboardStcsArea.js
  44. 2
      src/components/dashboard/DashboardStcsDay.js
  45. 2
      src/components/dashboard/DroneFlightSchedule.js
  46. 8
      src/components/laanc/LaancModal.js
  47. 2
      src/components/laanc/LaancQr.js
  48. 2
      src/components/laanc/list/LaancDetail.js
  49. 3
      src/components/laanc/list/LaancGrid.js
  50. 3
      src/components/laanc/list/LaancSearch.js
  51. 8
      src/components/laanc/map/FlightArea.js
  52. 2
      src/components/laanc/map/LaancAreaMap.js
  53. 8
      src/components/laanc/map/LaancDrawModal.js
  54. 7
      src/components/laanc/map/LaancMapSearch.js
  55. 2
      src/components/laanc/map/TodayWeather.js
  56. 2
      src/components/laanc/step/LaacnStep3.js
  57. 6
      src/components/laanc/step/LaancStep1.js
  58. 2
      src/components/laanc/step/LaancStep2.js
  59. 8
      src/components/map/mapbox/MapBoxMap.js
  60. 8
      src/components/message/MessageErrorModal.js
  61. 8
      src/components/message/MessageInfoModal.js
  62. 8
      src/components/modal/ConfirmModal.js
  63. 8
      src/components/modal/ErrorModal.js
  64. 8
      src/components/modal/InfoModal.js
  65. 2
      src/components/statistics/StatisticsSearch.js
  66. 2
      src/components/statistics/StatisticsTotal.js
  67. 49
      src/components/ui/Col/index.tsx
  68. 17
      src/components/ui/alert/index.tsx
  69. 24
      src/components/ui/badge/index.tsx
  70. 74
      src/components/ui/button/CustomButton.tsx
  71. 18
      src/components/ui/button/CustomButtonGroup.tsx
  72. 17
      src/components/ui/card/CustomCard.tsx
  73. 17
      src/components/ui/card/CustomCardBody.tsx
  74. 17
      src/components/ui/card/CustomCardHeader.tsx
  75. 23
      src/components/ui/card/CustomCardTitle.tsx
  76. 74
      src/components/ui/custominput/index.tsx
  77. 21
      src/components/ui/form/CustomForm.tsx
  78. 14
      src/components/ui/form/CustomFormFeedback.tsx
  79. 22
      src/components/ui/form/CustomFormGroup.tsx
  80. 68
      src/components/ui/index.tsx
  81. 18
      src/components/ui/input/CustomInputGroup.tsx
  82. 17
      src/components/ui/input/CustomInputGroupAddon.tsx
  83. 15
      src/components/ui/input/CustomInputGroupText.tsx
  84. 83
      src/components/ui/input/index.tsx
  85. 16
      src/components/ui/label/index.tsx
  86. 16
      src/components/ui/media/index.tsx
  87. 22
      src/components/ui/modal/CustomModal.tsx
  88. 16
      src/components/ui/modal/CustomModalBody.tsx
  89. 26
      src/components/ui/modal/CustomModalFooter.tsx
  90. 26
      src/components/ui/modal/CustomModalHeader.tsx
  91. 23
      src/components/ui/nav/CustomNavItem.tsx
  92. 22
      src/components/ui/nav/CustomNavLink.tsx
  93. 30
      src/components/ui/nav/index.tsx
  94. 21
      src/components/ui/popover/index.tsx
  95. 17
      src/components/ui/row/index.tsx
  96. 17
      src/components/ui/spinner/index.tsx
  97. 17
      src/components/ui/tab/CustomTabContent.tsx
  98. 17
      src/components/ui/tab/CustomTabPane.tsx
  99. 15
      src/components/ui/table/index.tsx
  100. 2
      src/containers/basis/dron/BasisDronDetailContainer.js
  101. Some files were not shown because too many files have changed in this diff Show More

2
src/components/account/find/AccountFindPassword.js

@ -13,7 +13,7 @@ import {
ModalHeader,
ModalBody,
ModalFooter
} from 'reactstrap';
} from '../../ui/index';
import { User, Lock } from 'react-feather';
import '../../../assets/css/custom.css';
import { accountApi } from '../../../modules/account/register/apis/accountApi';

2
src/components/account/find/AccountFindTab.js

@ -8,7 +8,7 @@ import {
NavItem,
NavLink,
TabContent
} from 'reactstrap';
} from '../../ui/index';
import classnames from 'classnames';
import { User, Lock } from 'react-feather';
import { AccountFindUserIdContainer } from '../../../containers/account/find/AccountFindUserIdContainer';

2
src/components/account/find/AccountFindUserId.js

@ -13,7 +13,7 @@ import {
ModalHeader,
ModalBody,
ModalFooter
} from 'reactstrap';
} from '../../ui/index';
import { User } from 'react-feather';
import '../../../assets/css/custom.css';

2
src/components/account/login/AccountLogin.js

@ -6,7 +6,7 @@ import {
InputGroup,
InputGroupAddon,
InputGroupText
} from 'reactstrap';
} from '../../ui/index';
import { Mail, Lock } from 'react-feather';
import { Link } from 'react-router-dom';
import { useEffect, useState } from 'react';

5
src/components/account/mypage/AccountMypageForm.js

@ -8,13 +8,12 @@ import {
FormGroup,
Input,
Label,
Button,
Modal,
ModalHeader,
ModalBody,
ModalFooter
} from 'reactstrap';
} from '../../../components/ui/index';
import { Button } from 'reactstrap';
// ** Styles
import '../../../assets/css/custom.css';
import { useHistory } from 'react-router-dom';

12
src/components/account/mypage/AccountMypagePwForm.js

@ -9,9 +9,9 @@ import {
TabPane,
FormGroup,
Input,
Label,
Button
} from 'reactstrap';
Label
} from '../../ui/index';
import { Button } from 'reactstrap';
// ** Styles
import '../../../assets/css/custom.css';
import {
@ -167,7 +167,7 @@ const AccountMypagePwForm = ({ activeTab }) => {
onChange={onChanges}
value={newPswd}
name='newPswd'
size='sm'
bsSize='sm'
autoComplete='off'
placeholder=''
/>
@ -187,7 +187,7 @@ const AccountMypagePwForm = ({ activeTab }) => {
onChange={onChanges}
value={newPswdConfirm}
name='newPswdConfirm'
size='sm'
bsSize='sm'
autoComplete='off'
placeholder=''
/>
@ -201,7 +201,7 @@ const AccountMypagePwForm = ({ activeTab }) => {
color='primary'
onClick={pwSubmit}
disabled={resultOk}
bsSize='sm'
size='sm'
>
저장
</Button.Ripple>

6
src/components/account/register/AccountRegisterComplete.js

@ -1,6 +1,6 @@
import { Fragment } from 'react';
import completeImg from '../../../assets/images/complete_img.svg';
import { Button } from 'reactstrap';
import { Button } from '../../ui/index';
export const AccountRegisterComplete = ({
stepper,
@ -21,9 +21,9 @@ export const AccountRegisterComplete = ({
<span className='d-block'>
모든 회원가입 절차가 완료되었습니다. 로그인 사용해 주세요.
</span>
<Button.Ripple type='submit' color='primary' onClick={handlerLogin}>
<Button type='submit' color='primary' onClick={handlerLogin}>
<span className='align-middle d-block'>로그인</span>
</Button.Ripple>
</Button>
</div>
{/* ---- 가입인사 끝 */}
</Fragment>

4
src/components/account/register/AccountRegisterForm.js

@ -4,6 +4,7 @@ import classnames from 'classnames';
import { isObjEmpty } from '@utils';
import { useForm } from 'react-hook-form';
import { yupResolver } from '@hookform/resolvers/yup';
import { Button } from 'reactstrap';
import {
Form,
Label,
@ -11,13 +12,12 @@ import {
FormGroup,
Row,
Col,
Button,
Modal,
ModalHeader,
ModalBody,
ModalFooter,
FormFeedback
} from 'reactstrap';
} from '../../ui/index';
import { useDispatch, useSelector } from 'react-redux';
import { accountApi } from '../../../modules/account/register/apis/accountApi';

4
src/components/account/register/AccountRegisterTerm.js

@ -1,15 +1,15 @@
import { useEffect, useState } from 'react';
import { Button } from 'reactstrap';
import {
FormGroup,
Row,
Col,
Button,
CustomInput,
Modal,
ModalHeader,
ModalBody,
ModalFooter
} from 'reactstrap';
} from '../../ui/index';
import { useDispatch, useSelector } from 'react-redux';
import * as Actions from '../../../modules/account/register/actions/accountAction';

21
src/components/analysis/history/AnalysisHistoryDetailGrid.js

@ -1,23 +1,4 @@
import {
Row,
Col,
Table,
Badge,
UncontrolledDropdown,
DropdownMenu,
DropdownItem,
DropdownToggle,
Card,
CardHeader,
CardBody,
CardTitle,
CardSubtitle,
ButtonGroup,
Button,
Input,
CustomInput,
FormGroup
} from 'reactstrap';
import { Row, Col, Card } from '../../ui/index';
import { ExcelExportButton } from '../../crud/excel/ExcelExportButton';
import { GridDatabase } from '../../crud/grid/GridDatatable';

21
src/components/analysis/history/AnalysisHistoryDetailSearch.js

@ -1,22 +1,5 @@
import {
Row,
Col,
Table,
Badge,
UncontrolledDropdown,
DropdownMenu,
DropdownItem,
DropdownToggle,
Card,
CardHeader,
CardBody,
CardTitle,
CardSubtitle,
ButtonGroup,
Button,
Input,
CustomInput
} from 'reactstrap';
import { Row, Col, Card, CardBody, CustomInput } from '../../ui/index';
import { Button } from 'reactstrap';
import { Calendar } from 'react-feather';
import Flatpickr from 'react-flatpickr';
import { MoreVertical, Edit, Trash, Search, File } from 'react-feather';

2
src/components/analysis/history/AnalysisHistoryDetailStatic.js

@ -1,5 +1,5 @@
import { useEffect, useState } from 'react';
import { Card, CardBody, Row, Col } from 'reactstrap';
import { Card, CardBody, Row, Col } from '../../ui/index';
import ChartjsLineChart from '../../charts/chart-js/ChartjsLineChart';
export const AnalysisHistoryDetailStatic = props => {
const [chartData, setChartData] = useState({});

2
src/components/analysis/history/AnalysisHistoryGrid.js

@ -1,5 +1,5 @@
import { GridDatabase } from '../../../components/crud/grid/GridDatatable';
import { Card, Spinner } from 'reactstrap';
import { Card, Spinner } from '../../ui/index';
import { ExcelExportButton } from '../../crud/excel/ExcelExportButton';
import { useSelector } from 'react-redux';

2
src/components/analysis/simulation/AnalysisSimuationInfo.js

@ -1,7 +1,7 @@
import dayjs from 'dayjs';
import { useEffect, useState, useRef, useCallback } from 'react';
import { useSelector } from 'react-redux';
import { Spinner } from 'reactstrap';
import { Spinner } from '../../ui/index';
export const AnalysisSimulationInfo = props => {
const [target, setTarget] = useState(null);

3
src/components/analysis/simulation/AnalysisSimulationDetail.js

@ -7,13 +7,12 @@ import { AiFillCaretRight, AiOutlinePause } from 'react-icons/ai';
import { IoSettings } from 'react-icons/io5';
import ScrollContainer from 'react-indiana-drag-scroll';
import {
Badge,
Button,
UncontrolledDropdown,
DropdownToggle,
DropdownMenu,
DropdownItem
} from 'reactstrap';
import { Badge, Button } from '../../ui/index';
import drone_img from '../../../assets/images/drone.jpg';
import { ReactComponent as Simulation_icon } from '../../../assets/images/simulation_arrow.svg';
import { IMG_PATH } from '../../../configs/constants';

2
src/components/analysis/simulation/AnalysisSimulationReport.js

@ -1,7 +1,7 @@
import { useState } from 'react';
import { Calendar, X } from 'react-feather';
import Flatpickr from 'react-flatpickr';
import { Button, Input, InputGroup } from 'reactstrap';
import { Button, Input, InputGroup } from '../../ui/index';
export const AnalysisSimulationReport = props => {
// 식별번호

2
src/components/basis/BasisDataGrid.js

@ -1,4 +1,4 @@
import { Row, Col, Card } from 'reactstrap';
import { Row, Col, Card } from '../ui/index';
import { GridDatabase } from '../crud/grid/GridDatatable';
export const BasisDataGrid = props => {

2
src/components/basis/BasisGroupGrid.js

@ -1,5 +1,5 @@
import { GridDatabase } from '../crud/grid/GridDatatable';
import { Card, Row, Col } from 'reactstrap';
import { Card, Row, Col } from '../ui/index';
export const BasisGroupGrid = props => {
return (

3
src/components/basis/BasisSearch.js

@ -1,4 +1,5 @@
import { Row, Col, Card, CardBody, Button } from 'reactstrap';
import { Row, Col, Card, CardBody } from '../ui/index';
import { Button } from 'reactstrap';
import { Search } from 'react-feather';
export const BasisSearch = ({ children, ...props }) => {

2
src/components/basis/dron/BasisDronForm.js

@ -10,7 +10,7 @@ import {
Label,
Row,
Button
} from 'reactstrap';
} from '../../ui/index';
import { ARCTFT_TYPE_CD, WGHT_TYPE_CD } from '../../../configs/constants';
export const BasisDronForm = props => {

5
src/components/basis/dron/BasisDronImage.js

@ -1,15 +1,14 @@
import React from 'react';
import { Edit, Image, Trash2 } from 'react-feather';
import {
Button,
Label,
Media,
Modal,
ModalHeader,
ModalBody,
ModalFooter
} from 'reactstrap';
} from '../../ui/index';
import { Button } from 'reactstrap';
export const BasisDronImage = props => {
return (
<Media className='pal-media'>

2
src/components/basis/dron/BasisDronTab.js

@ -9,7 +9,7 @@ import {
NavLink,
TabContent,
TabPane
} from 'reactstrap';
} from '../../ui/index';
import classnames from 'classnames';
import { Settings, AlertTriangle } from 'react-feather';
import { BasisDronDetailContainer } from '../../../containers/basis/dron/BasisDronDetailContainer';

4
src/components/basis/dron/BasisIdntform.js

@ -5,12 +5,12 @@ import {
Col,
Card,
CardBody,
Button,
Input,
Form,
FormGroup,
Label
} from 'reactstrap';
} from '../../ui/index';
import { Button } from 'reactstrap';
import { X } from 'react-feather';
import Repeater from '@components/repeater';

4
src/components/basis/flight/plan/FlightPlanGroupGrid.js

@ -1,7 +1,7 @@
import React from 'react';
import { GridDatabase } from '../../../crud/grid/GridDatatable';
import { Card, Button } from 'reactstrap';
import { Button } from 'reactstrap';
import { Card } from '../../../ui/index';
const FlightPlanGroupGrid = ({
data,
count,

2
src/components/basis/flight/schedule/FlightScheduleGrid.js

@ -1,6 +1,6 @@
import { useRef, useState } from 'react';
import { GridDatabase } from '@src/components/crud/grid/GridDatatable';
import { Row, Col, Card, Spinner } from 'reactstrap';
import { Row, Col, Card, Spinner } from '../../../ui/index';
import FlightScheduleRealTime from './FlightScheduleRealTime';
import { useSelector } from 'react-redux';
import dayjs from 'dayjs';

3
src/components/basis/flight/schedule/FlightScheduleSearch.js

@ -1,6 +1,7 @@
import dayjs from 'dayjs';
import { useEffect, useState } from 'react';
import { Row, Col, Button, Card, CardBody } from 'reactstrap';
import { Row, Col, Card, CardBody } from '../../../ui/index';
import { Button } from 'reactstrap';
import { Search, Calendar } from 'react-feather';
import Flatpickr from 'react-flatpickr';
import { FLIGHT_SCHEDULE_LIST } from '@src/modules/laanc/actions/laancActions';

4
src/components/basis/group/BaisGroupForm.js

@ -2,18 +2,18 @@ import { useEffect, useState } from 'react';
import * as yup from 'yup';
import { useForm } from 'react-hook-form';
import classnames from 'classnames';
import { Button } from 'reactstrap';
import {
Row,
Col,
Card,
CardBody,
Button,
Input,
FormGroup,
Label,
FormFeedback,
Form
} from 'reactstrap';
} from '../../ui/index';
import { yupResolver } from '@hookform/resolvers/yup';
export const BasisGroupForm = props => {

2
src/components/basis/group/BasisGroupApprovalSearch.js

@ -1,4 +1,4 @@
import { Row, Col, Input, CustomInput, Label, FormGroup } from 'reactstrap';
import { Row, Col, Input, CustomInput, Label, FormGroup } from '../../ui/index';
import { useEffect, useState } from 'react';
import { BasisSearch } from '../BasisSearch';

2
src/components/basis/group/BasisGroupDetailJoinSearch.js

@ -1,4 +1,4 @@
import { Row, Col, Input, Label, FormGroup } from 'reactstrap';
import { Row, Col, Input, Label, FormGroup } from '../../ui/index';
import { BasisSearch } from '../BasisSearch';
export const BasisGroupDetailJoinSearch = props => {

2
src/components/basis/group/BasisGroupUsersSearch.js

@ -1,4 +1,4 @@
import { Row, Col, Input, Label, FormGroup } from 'reactstrap';
import { Row, Col, Input, Label, FormGroup } from '../../ui/index';
import { BasisSearch } from '../BasisSearch';
export const BasisGroupUsersSearch = props => {

30
src/components/charts/apex/ApexAreaCharts.js

@ -1,13 +1,19 @@
import Chart from 'react-apexcharts'
import Flatpickr from 'react-flatpickr'
import { Calendar } from 'react-feather'
import { Card, CardHeader, CardTitle, CardBody, CardSubtitle } from 'reactstrap'
import Chart from 'react-apexcharts';
import Flatpickr from 'react-flatpickr';
import { Calendar } from 'react-feather';
import {
Card,
CardHeader,
CardTitle,
CardBody,
CardSubtitle
} from '../../ui/index';
const areaColors = {
series3: '#a4f8cd',
series2: '#60f2ca',
series1: '#2bdac7'
}
};
const ApexAreaCharts = ({ direction }) => {
const options = {
@ -64,7 +70,7 @@ const ApexAreaCharts = ({ direction }) => {
yaxis: {
opposite: direction === 'rtl'
}
}
};
const series = [
{
@ -79,7 +85,7 @@ const ApexAreaCharts = ({ direction }) => {
name: 'Sales',
data: [20, 40, 30, 70, 40, 60, 50, 140, 120, 100, 140, 180, 220]
}
]
];
return (
<Card>
@ -88,7 +94,9 @@ const ApexAreaCharts = ({ direction }) => {
<CardTitle className='mb-75' tag='h4'>
Line Chart
</CardTitle>
<CardSubtitle className='text-muted'>Commercial networks</CardSubtitle>
<CardSubtitle className='text-muted'>
Commercial networks
</CardSubtitle>
</div>
<div className='d-flex align-items-center mt-md-0 mt-1'>
<Calendar size={17} />
@ -105,6 +113,6 @@ const ApexAreaCharts = ({ direction }) => {
<Chart options={options} series={series} type='area' height={400} />
</CardBody>
</Card>
)
}
export default ApexAreaCharts
);
};
export default ApexAreaCharts;

66
src/components/charts/apex/index.js

@ -1,49 +1,57 @@
// ** React Imports
import { Fragment, useContext } from 'react'
import { Fragment, useContext } from 'react';
// ** Third Party Components
import { Row, Col } from 'reactstrap'
import { Row, Col } from '../../ui/index';
// ** Custom Hooks
import { useRTL } from '@hooks/useRTL'
import { useRTL } from '@hooks/useRTL';
// ** Custom Components
import Breadcrumbs from '@components/breadcrumbs'
import Breadcrumbs from '@components/breadcrumbs';
// ** Context
import { ThemeColors } from '@src/utility/context/ThemeColors'
import { ThemeColors } from '@src/utility/context/ThemeColors';
// ** Charts
import ApexBarChart from './ApexBarChart'
import ApexLineChart from './ApexLineChart'
import ApexAreaChart from './ApexAreaCharts'
import ApexRadarChart from './ApexRadarChart'
import ApexDonutChart from './ApexDonutChart'
import ApexRadialBarChart from './ApexRadialbar'
import ApexColumnChart from './ApexColumnCharts'
import ApexHeatmapChart from './ApexHeatmapChart'
import ApexScatterChart from './ApexScatterCharts'
import ApexCandlestickChart from './ApexCandlestickChart'
import ApexBarChart from './ApexBarChart';
import ApexLineChart from './ApexLineChart';
import ApexAreaChart from './ApexAreaCharts';
import ApexRadarChart from './ApexRadarChart';
import ApexDonutChart from './ApexDonutChart';
import ApexRadialBarChart from './ApexRadialbar';
import ApexColumnChart from './ApexColumnCharts';
import ApexHeatmapChart from './ApexHeatmapChart';
import ApexScatterChart from './ApexScatterCharts';
import ApexCandlestickChart from './ApexCandlestickChart';
// ** Styles
import '@styles/react/libs/charts/apex-charts.scss'
import '@styles/react/libs/flatpickr/flatpickr.scss'
import '@styles/react/libs/charts/apex-charts.scss';
import '@styles/react/libs/flatpickr/flatpickr.scss';
const ApexCharts = () => {
// ** Hooks
const [isRtl, setIsRtl] = useRTL()
const [isRtl, setIsRtl] = useRTL();
// ** Theme Colors
const { colors } = useContext(ThemeColors)
const { colors } = useContext(ThemeColors);
return (
<Fragment>
<Breadcrumbs breadCrumbTitle='Apex Charts' breadCrumbParent='Charts' breadCrumbActive='Apex' />
<Breadcrumbs
breadCrumbTitle='Apex Charts'
breadCrumbParent='Charts'
breadCrumbActive='Apex'
/>
<Row className='match-height'>
<Col sm='12'>
<p>
A React.js component for ApexCharts. Read full documnetation{' '}
<a href='https://github.com/apexcharts/react-apexcharts' target='_blank' rel='noopener noreferrer'>
<a
href='https://github.com/apexcharts/react-apexcharts'
target='_blank'
rel='noopener noreferrer'
>
here
</a>
</p>
@ -63,10 +71,16 @@ const ApexCharts = () => {
/>
</Col>
<Col sm='12'>
<ApexLineChart direction={isRtl ? 'rtl' : 'ltr'} warning={colors.warning.main} />
<ApexLineChart
direction={isRtl ? 'rtl' : 'ltr'}
warning={colors.warning.main}
/>
</Col>
<Col xl='6' lg='12'>
<ApexBarChart direction={isRtl ? 'rtl' : 'ltr'} info={colors.info.main} />
<ApexBarChart
direction={isRtl ? 'rtl' : 'ltr'}
info={colors.info.main}
/>
</Col>
<Col xl='6' lg='12'>
<ApexCandlestickChart
@ -89,7 +103,7 @@ const ApexCharts = () => {
</Col>
</Row>
</Fragment>
)
}
);
};
export default ApexCharts
export default ApexCharts;

2
src/components/cstmrService/faq/FaqForm.js

@ -10,7 +10,7 @@ import {
FormGroup,
Label,
CustomInput
} from 'reactstrap';
} from '../../ui/index';
export default function FaqForm({
isOpenFormModal,

7
src/components/cstmrService/faq/FaqSearchBox.js

@ -1,4 +1,9 @@
import { Input, InputGroup, InputGroupAddon, InputGroupText } from 'reactstrap';
import {
Input,
InputGroup,
InputGroupAddon,
InputGroupText
} from '../../ui/index';
import { Search } from 'react-feather';
export default function FaqSearchBox({

2
src/components/cstmrService/faq/FaqTab.js

@ -1,4 +1,4 @@
import { Nav, NavItem, NavLink } from 'reactstrap';
import { Nav, NavItem, NavLink } from '../../ui/index';
export default function FaqTab({ activeTab, handlerChangeTab, tabList }) {
return (

2
src/components/cstmrService/inquiry/InquiryWrite.js

@ -14,7 +14,7 @@ import {
Col,
FormGroup,
Label
} from 'reactstrap';
} from '../../ui/index';
import classnames from 'classnames';
import { X } from 'react-feather';

2
src/components/cstmrService/inquiry/QnaDetail.js

@ -10,7 +10,7 @@ import {
FormGroup,
Label,
CustomInput
} from 'reactstrap';
} from '../../ui/index';
export default function QnaDetatil({
isDetailModal,

4
src/components/cstmrService/inquiry/QnaGrid.js

@ -1,6 +1,6 @@
import { GridDatabase } from '../../crud/grid/GridDatatable';
import { Button, Card } from 'reactstrap';
import { Button } from 'reactstrap';
import { Card } from '../../ui/index';
export default function QnaGrid({ lists, handlerDetailModal }) {
const columns = [
{

3
src/components/cstmrService/inquiry/QnaSearchBox.js

@ -1,4 +1,5 @@
import { Button, Card, CardBody, Col, Row, Input } from 'reactstrap';
import { Button } from 'reactstrap';
import { Card, CardBody, Col, Row, Input } from '../../ui/index';
import { Search } from 'react-feather';
const categoryList = [

2
src/components/dashboard/DashboardDronList.js

@ -1,5 +1,5 @@
import { Plus } from 'react-feather';
import { Card, CardBody, CardHeader, CardTitle, Table } from 'reactstrap';
import { Card, CardBody, CardHeader, CardTitle, Table } from '../ui/index';
export const DashboardDronList = props => {
return (

2
src/components/dashboard/DashboardGroupList.js

@ -1,5 +1,5 @@
import { Plus } from 'react-feather';
import { Card, CardBody, CardHeader, CardTitle } from 'reactstrap';
import { Card, CardBody, CardHeader, CardTitle } from '../ui/index';
import { GridDatabase } from '../../components/crud/grid/GridDatatable';
import { EDateType } from '../../modules/main/dash/models/mainDashModel.ts';
import { IoIosArrowRoundDown, IoIosArrowRoundUp } from 'react-icons/io';

2
src/components/dashboard/DashboardMenu.js

@ -1,4 +1,4 @@
import { Card, Col, Row } from 'reactstrap';
import { Card, Col, Row } from '../../components/ui/index';
export const DashboardMenu = props => {
return (

2
src/components/dashboard/DashboardStcsArea.js

@ -5,7 +5,7 @@ import { Plus } from 'react-feather';
import DatePicker from 'react-datepicker';
import 'react-datepicker/dist/react-datepicker.css';
import { Calendar } from 'react-feather';
import { Card, CardBody, CardHeader, CardTitle } from 'reactstrap';
import { Card, CardBody, CardHeader, CardTitle } from '../ui/index';
import ChartjsDoughnutChart from '../charts/chart-js/ChartjsDoughnutChart';
const tooltipShadow = 'rgba(0, 0, 0, 0.25)';
const warningLightColor = '#FDAC34';

2
src/components/dashboard/DashboardStcsDay.js

@ -5,7 +5,7 @@ import { useEffect, useState, useRef } from 'react';
import ChartjsBarChart from '../charts/chart-js/ChartjsBarChart';
import DatePicker from 'react-datepicker';
import { Calendar } from 'react-feather';
import { Card, CardBody, CardHeader, CardTitle } from 'reactstrap';
import { Card, CardBody, CardHeader, CardTitle } from '../ui/index';
const tooltipShadow = 'rgba(0, 0, 0, 0.25)';
const gridLineColor = 'rgba(200, 200, 200, 0.2)';

2
src/components/dashboard/DroneFlightSchedule.js

@ -7,7 +7,7 @@ import {
CardTitle,
Input,
Label
} from 'reactstrap';
} from '../ui/index';
import { GridDatabase } from '../../components/crud/grid/GridDatatable';
const columns = [

8
src/components/laanc/LaancModal.js

@ -1,4 +1,10 @@
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import {
Button,
Modal,
ModalHeader,
ModalBody,
ModalFooter
} from '../ui/index';
export default function LaancModal(props) {
const handleButtonClick = () => {

2
src/components/laanc/LaancQr.js

@ -1,5 +1,5 @@
import { useEffect, useState, useRef } from 'react';
import { ModalHeader, ModalBody, ModalFooter, Button } from 'reactstrap';
import { ModalHeader, ModalBody, ModalFooter, Button } from '../ui/index';
import ErrorModal from '../../components/modal/ErrorModal';
import axios from '../../modules/utils/customAxiosUtil';

2
src/components/laanc/list/LaancDetail.js

@ -10,7 +10,7 @@ import {
FormGroup,
Label,
Input
} from 'reactstrap';
} from '../../ui/index';
import FlightArea from '../map/FlightArea';
import * as TermsActions from '../../../modules/account/register/actions/accountAction';

3
src/components/laanc/list/LaancGrid.js

@ -2,7 +2,8 @@ import { useEffect, useState } from 'react';
import { useSelector, useDispatch } from 'react-redux';
import { pdfjs } from 'react-pdf';
import { GridDatabase } from '@src/components/crud/grid/GridDatatable';
import { Row, Col, Card, Button, Spinner, Modal } from 'reactstrap';
import { Row, Col, Card, Spinner, Modal } from '../../ui/index';
import { Button } from 'reactstrap';
import * as LaancAction from '../../../modules/laanc/actions/laancActions';
import dayjs from 'dayjs';

3
src/components/laanc/list/LaancSearch.js

@ -1,6 +1,7 @@
import { useState, useEffect } from 'react';
import { useDispatch } from 'react-redux';
import { Row, Col, Button, Card, CardBody } from 'reactstrap';
import { Row, Col, Card, CardBody } from '../../ui/index';
import { Button } from 'reactstrap';
import { Search, Calendar } from 'react-feather';
import Flatpickr from 'react-flatpickr';
import dayjs from 'dayjs';

8
src/components/laanc/map/FlightArea.js

@ -1,6 +1,12 @@
import { useEffect, useRef, useState, lazy, Suspense } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import {
Button,
Modal,
ModalHeader,
ModalBody,
ModalFooter
} from '../../ui/index';
// mapbox
import 'mapbox-gl/dist/mapbox-gl.css';
import mapboxgl from 'mapbox-gl';

2
src/components/laanc/map/LaancAreaMap.js

@ -5,7 +5,7 @@ import threebox from 'threebox-plugin';
import MapboxLanguage from '@mapbox/mapbox-gl-language';
import { MAPBOX_TOKEN } from '../../../configs/constants';
import { useDispatch, useSelector } from 'react-redux';
import { Card, CardBody } from 'reactstrap';
import { Card, CardBody } from '../../ui/index';
import { initFlightBas } from '../../../modules/laanc/models/laancModels';
import * as LaancAction from '../../../modules/laanc/actions/laancActions';
import {

8
src/components/laanc/map/LaancDrawModal.js

@ -1,4 +1,10 @@
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import {
Button,
Modal,
ModalHeader,
ModalBody,
ModalFooter
} from '../../ui/index';
export default function LaancDrawModal({ modal, handler }) {
// 드론원스탑으로 새창 바로가기

7
src/components/laanc/map/LaancMapSearch.js

@ -1,4 +1,9 @@
import { Input, InputGroup, InputGroupAddon, InputGroupText } from 'reactstrap';
import {
Input,
InputGroup,
InputGroupAddon,
InputGroupText
} from '../../ui/index';
import { Search } from 'react-feather';
import { useState } from 'react';
import { laancApi } from '../../../modules/laanc/apis/laancApi';

2
src/components/laanc/map/TodayWeather.js

@ -1,4 +1,4 @@
import { Table } from 'reactstrap';
import { Table } from '../../ui/index';
import { Sun, Cloud, CloudRain, CloudSnow, Navigation2 } from 'react-feather';
export function TodayWeather({ todayData }) {

2
src/components/laanc/step/LaacnStep3.js

@ -13,7 +13,7 @@ import {
Label,
Input,
Badge
} from 'reactstrap';
} from '../../ui/index';
import { CheckCircle } from 'react-feather';
import { HOST } from '../../../configs/constants';
pdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;

6
src/components/laanc/step/LaancStep1.js

@ -8,6 +8,7 @@ import { AlertCircle, Info } from 'react-feather';
import { FLIGHT_PLAN_AREA_BUFFER_LIST } from '../../../modules/laanc/actions/laancActions';
import axios from '../../../modules/utils/customAxiosUtil';
import dayjs from 'dayjs';
import { UncontrolledPopover, PopoverBody } from 'reactstrap';
import {
Row,
Col,
@ -16,13 +17,10 @@ import {
ModalBody,
ModalFooter,
FormGroup,
UncontrolledPopover,
PopoverBody,
Label,
Input,
Modal
} from 'reactstrap';
} from '../../ui/index';
const LaancModal = lazy(() => import('../LaancModal'));
const LaancQr = lazy(() => import('../../../components/laanc/LaancQr'));
const FlightArea = lazy(() => import('../map/FlightArea'));

2
src/components/laanc/step/LaancStep2.js

@ -15,7 +15,7 @@ import {
Label,
Input,
CustomInput
} from 'reactstrap';
} from '../../ui/index';
import * as LaancAction from '../../../modules/laanc/actions/laancActions';
import * as TermsActions from '../../../modules/account/register/actions/accountAction';

8
src/components/map/mapbox/MapBoxMap.js

@ -7,7 +7,13 @@ import {
Suspense
} from 'react';
import { useSelector, useDispatch } from 'react-redux';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import {
Button,
Modal,
ModalHeader,
ModalBody,
ModalFooter
} from '../../ui/index';
// mapbox
import 'mapbox-gl/dist/mapbox-gl.css';
import { MAPBOX_TOKEN } from '../../../configs/constants';

8
src/components/message/MessageErrorModal.js

@ -1,6 +1,12 @@
import { useEffect } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import {
Button,
Modal,
ModalHeader,
ModalBody,
ModalFooter
} from '../ui/index';
import * as Actions from '../../modules/comn/message/actions/comnMessageAction';
export const MessageErrorModal = props => {

8
src/components/message/MessageInfoModal.js

@ -1,6 +1,12 @@
import { useEffect } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import {
Button,
Modal,
ModalHeader,
ModalBody,
ModalFooter
} from '../ui/index';
import * as Actions from '../../modules/comn/message/actions/comnMessageAction';
import { useHistory } from 'react-router-dom';

8
src/components/modal/ConfirmModal.js

@ -1,4 +1,10 @@
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import {
Button,
Modal,
ModalHeader,
ModalBody,
ModalFooter
} from '../ui/index';
export const ConfirmModal = props => {
const handlerSubmit = () => {

8
src/components/modal/ErrorModal.js

@ -1,4 +1,10 @@
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import {
Button,
Modal,
ModalHeader,
ModalBody,
ModalFooter
} from '../ui/index';
export default function ErrorModal(props) {
return (

8
src/components/modal/InfoModal.js

@ -1,4 +1,10 @@
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import {
Button,
Modal,
ModalHeader,
ModalBody,
ModalFooter
} from '../ui/index';
export default function InfoModal(props) {
return (

2
src/components/statistics/StatisticsSearch.js

@ -6,7 +6,7 @@ import {
CardTitle,
CardBody,
CustomInput
} from 'reactstrap';
} from '../ui/index';
import { Search } from 'react-feather';
import { useEffect, useState } from 'react';
import ChartjsDoughnutChart from '../charts/chart-js/ChartjsDoughnutChart';

2
src/components/statistics/StatisticsTotal.js

@ -1,4 +1,4 @@
import { Col, Row } from 'reactstrap';
import { Col, Row } from '../ui/index';
import { FcAlarmClock, FcWorkflow, FcBarChart } from 'react-icons/fc';
import { useEffect } from 'react';
import { formatNumber } from '../../utility/Utils';

49
src/components/ui/Col/index.tsx

@ -0,0 +1,49 @@
import { ReactNode } from 'react';
import { Col } from 'reactstrap';
interface Props {
children: ReactNode;
className?: string;
lg?: string;
sm?: string;
md?: string;
xs?: string;
xl?: string;
style?: React.CSSProperties;
}
/**
*
* @param children: ReactNode
* @param className?:string
* @param lg?:string
* @param sm?:string
* @param md?:string
* @param xs?:string
* @param xl?:string
*
*/
export default function CustomCol({
children,
className,
lg,
sm,
md,
xs,
xl,
style
}: Props) {
return (
<Col
lg={lg}
sm={sm}
md={md}
xs={xs}
xl={xl}
style={style}
className={className}
>
{children}
</Col>
);
}

17
src/components/ui/alert/index.tsx

@ -0,0 +1,17 @@
import { ReactNode } from 'react';
import { Alert } from 'reactstrap';
interface Props {
children: ReactNode;
color?: 'primary' | 'danger';
}
/**
*
* @param children: ReactNode
* @param color?: 'primary' | 'danger' ;
*
*/
export default function CustomAlert({ children, color = 'primary' }: Props) {
return <Alert color={color}>{children}</Alert>;
}

24
src/components/ui/badge/index.tsx

@ -0,0 +1,24 @@
'use client';
import { Badge } from 'reactstrap';
import { ReactNode } from 'react';
interface Props {
children: ReactNode;
className?: string;
color?: string;
}
/**
*
* @param children: ReactNode
* @param className?:string
* @param color?: 'light-secondary' | 'primary' | 'secondary' | 'light-primary'
*/
export default function CustomBadge({ children, className, color }: Props) {
return (
<Badge color={color} className={className}>
{children}
</Badge>
);
}

74
src/components/ui/button/CustomButton.tsx

@ -0,0 +1,74 @@
import {
ButtonHTMLAttributes,
MouseEvent,
MouseEventHandler,
ReactNode
} from 'react';
import { Button } from 'reactstrap';
interface Props {
outline?: boolean;
active?: boolean;
color?: 'primary' | 'secondary' | 'danger';
type?: ButtonHTMLAttributes<HTMLButtonElement>['type'];
tag?: React.ElementType;
innerRef?: React.Ref<HTMLButtonElement>;
size?: string;
className?: string;
onClick?: MouseEventHandler<HTMLButtonElement>;
children?: ReactNode;
disabled?: boolean;
id?: string;
ripple?: boolean;
}
/**
* @param outline?:boolean default false
* @param active?:boolean default false
* @param color?: 'primary' | 'secondary' | 'danger'
* @param type?:ButtonHTMLAttributes<HTMLButtonElement>['type']
* @param tag?:React.ElementType
* @param innerRef?:React.Ref<HTMLButtonElement>
* @param size?:string
* @param className?:string
* @param onClick?:MouseEventHandler<HTMLButtonElement>
* @param children?:ReactNode
* @param disabled?:boolean default false
* @param id?:string
* @param ripple?:boolean default false
*/
export default function CustomButton({
outline = false,
color,
type,
tag,
size,
className,
onClick,
children,
disabled = false,
id
}: Props) {
// const ButtonComponent = ripple ? Button.Ripple : Button;
const handleClick = (event: MouseEvent<HTMLButtonElement>) => {
event.preventDefault(); // 기본 동작 중지
if (onClick) {
onClick(event);
}
};
return (
<Button
onClick={handleClick}
outline={outline}
color={color}
type={type}
size={size}
className={className}
tag={tag}
disabled={disabled}
id={id}
>
{children}
</Button>
);
}

18
src/components/ui/button/CustomButtonGroup.tsx

@ -0,0 +1,18 @@
import { ButtonGroup } from 'reactstrap';
import { ReactNode } from 'react';
interface Props {
children: ReactNode;
className?: string;
}
/**
*
* @param children: ReactNode
* @param className?:string
*
*/
export default function CustomButtonGroup({ children, className }: Props) {
return <ButtonGroup className={className}>{children}</ButtonGroup>;
}

17
src/components/ui/card/CustomCard.tsx

@ -0,0 +1,17 @@
'use client';
import { ReactNode } from 'react';
import { Card } from 'reactstrap';
interface Props {
children: ReactNode;
className?: string;
}
/**
*
* @param children: ReactNode
* @param className?:string
*/
export default function CustomCard({ children, className }: Props) {
return <Card className={className}>{children}</Card>;
}

17
src/components/ui/card/CustomCardBody.tsx

@ -0,0 +1,17 @@
'use client';
import { ReactNode } from 'react';
import { CardBody } from 'reactstrap';
interface Props {
children: ReactNode;
className?: string;
}
/**
*
* @param children: ReactNode
* @param className?:string
*/
export default function CustomCardBody({ children, className }: Props) {
return <CardBody className={className}>{children}</CardBody>;
}

17
src/components/ui/card/CustomCardHeader.tsx

@ -0,0 +1,17 @@
'use client';
import { ReactNode } from 'react';
import { CardHeader } from 'reactstrap';
interface Props {
children: ReactNode;
className?: string;
}
/**
*
* @param children: ReactNode
* @param className?:string
*/
export default function CustomCardHeader({ children, className }: Props) {
return <CardHeader className={className}>{children}</CardHeader>;
}

23
src/components/ui/card/CustomCardTitle.tsx

@ -0,0 +1,23 @@
'use client';
import { ElementType, ReactNode } from 'react';
import { CardTitle } from 'reactstrap';
interface Props {
children: ReactNode;
className?: string;
tag: ElementType;
}
/**
*
* @param children: ReactNode
* @param className?:string
* @param tag?:string
*/
export default function CustomCardTitle({ children, className, tag }: Props) {
return (
<CardTitle className={className} tag={tag}>
{children}
</CardTitle>
);
}

74
src/components/ui/custominput/index.tsx

@ -0,0 +1,74 @@
'use client';
import { read } from 'fs';
import { ChangeEvent, MouseEventHandler, ReactNode } from 'react';
import { CustomInput } from 'reactstrap';
interface Props {
children: ReactNode;
className?: string;
readOnly?: boolean;
checked?: boolean;
id?: string;
onClick?: MouseEventHandler<HTMLInputElement>;
onChange?: (event: ChangeEvent<HTMLInputElement>) => void;
value?: any;
name?: string;
type?: any;
bsSize?: 'lg' | 'sm' | undefined;
label?: string;
inline?: boolean;
}
/**
*
* @param children: ReactNode
* @param className?:string
* @param readOnly?:boolean default false
* @param checked?:boolean
* @param label?:string
* @param id?:string
* @param onClick?:MouseEventHandler<HTMLButtonElement>
* @param onChange?:MouseEventHandler<HTMLButtonElement>
* @param value?:any
* @param name?:string
* @param type?:string
* @param bsSize?: "lg" | "sm"
* @param inline?:boolean default false
*
*/
export default function CustomInputs({
children,
className,
label,
checked,
id,
onClick,
onChange,
value,
name,
readOnly,
type,
inline = false,
bsSize
}: Props) {
return (
<>
<CustomInput
className={className}
id={id}
checked={checked}
label={label}
value={value}
bsSize={bsSize}
name={name}
type={type}
readOnly={readOnly}
onClick={onClick}
inline={inline}
onChange={onChange}
>
{children}
</CustomInput>
</>
);
}

21
src/components/ui/form/CustomForm.tsx

@ -0,0 +1,21 @@
import { FormEventHandler, ReactNode } from 'react';
import { Form } from 'reactstrap';
interface Props {
children: ReactNode;
onSubmit?: FormEventHandler<HTMLFormElement>;
key?: string;
}
/**
*
* @param children: ReactNode
* @param className?:string
*/
export default function CustomForm({ children, onSubmit, key }: Props) {
return (
<Form onSubmit={onSubmit} key={key}>
{children}
</Form>
);
}

14
src/components/ui/form/CustomFormFeedback.tsx

@ -0,0 +1,14 @@
import { FormFeedback } from 'reactstrap';
import { ReactNode } from 'react';
interface Props {
children: ReactNode;
}
/**
*
* @param children: ReactNode
*/
export default function CustomFormFeedback({ children }: Props) {
return <FormFeedback>{children}</FormFeedback>;
}

22
src/components/ui/form/CustomFormGroup.tsx

@ -0,0 +1,22 @@
import { ReactNode } from 'react';
import { FormGroup, Col } from 'reactstrap';
interface Props {
children: ReactNode;
className?: string;
md?: string;
tag?: any;
}
/**
*
* @param children: ReactNode
* @param className?:string
*/
export default function CustomFormGroup({ children, className, md }: Props) {
return (
<FormGroup className={className} md={md}>
{children}
</FormGroup>
);
}

68
src/components/ui/index.tsx

@ -0,0 +1,68 @@
import Badge from './badge/index';
import Button from './button/CustomButton';
import ButtonGroup from './button/CustomButtonGroup';
import Card from './card/CustomCard';
import CardBody from './card/CustomCardBody';
import CardTitle from './card/CustomCardTitle';
import CardHeader from './card/CustomCardHeader';
import Col from './Col/index';
import From from './form/CustomForm';
import FormGroup from './form/CustomFormGroup';
import FormFeedback from './form/CustomFormFeedback';
import Input from './input';
import Label from './label';
import Row from './row';
import InputGroup from './input/CustomInputGroup';
import InputGroupText from './input/CustomInputGroupText';
import Spinner from './spinner';
import TabContent from './tab/CustomTabContent';
import TabPane from './tab/CustomTabPane';
import Nav from './nav/index';
import NavItem from './nav/CustomNavItem';
import NavLink from './nav/CustomNavLink';
import Alert from './alert/index';
import Table from './table/index';
import Popover from './popover/index';
import CustomInput from './custominput/index';
import InputGroupAddon from './input/CustomInputGroupAddon';
import Modal from './modal/CustomModal';
import ModalHeader from './modal/CustomModalHeader';
import ModalBody from './modal/CustomModalBody';
import ModalFooter from './modal/CustomModalFooter';
import Form from './form/CustomForm';
import Media from './media/index';
export {
Button,
ButtonGroup,
Card,
CardBody,
CardTitle,
CardHeader,
Col,
From,
FormGroup,
FormFeedback,
Input,
Label,
Row,
InputGroup,
InputGroupText,
Badge,
Spinner,
TabContent,
TabPane,
Nav,
NavItem,
NavLink,
Alert,
Table,
Popover,
CustomInput,
InputGroupAddon,
Modal,
ModalHeader,
ModalBody,
ModalFooter,
Form,
Media
};

18
src/components/ui/input/CustomInputGroup.tsx

@ -0,0 +1,18 @@
import { ReactNode } from 'react';
import { InputGroup } from 'reactstrap';
interface Props {
children: ReactNode;
className?: string;
}
/**
*
* @param children: ReactNode
* @param className?:string
*
*/
export default function CustomInputGroup({ children, className }: Props) {
return <InputGroup className={className}>{children}</InputGroup>;
}

17
src/components/ui/input/CustomInputGroupAddon.tsx

@ -0,0 +1,17 @@
import { InputGroupAddon } from 'reactstrap';
import { ReactNode } from 'react';
interface Props {
children: ReactNode;
addonType?: 'prepend' | 'append';
}
/**
*
* @param children: ReactNode
* @param addonType?: 'prepend' | 'append'
*/
export default function CustomInputGroupAddon({ children, addonType }: Props) {
return <InputGroupAddon addonType={addonType}>{children}</InputGroupAddon>;
}

15
src/components/ui/input/CustomInputGroupText.tsx

@ -0,0 +1,15 @@
import { InputGroupText } from 'reactstrap';
import { ReactNode } from 'react';
interface Props {
children: ReactNode;
}
/**
*
* @param children: ReactNode
*/
export default function CustomInputGroupText({ children }: Props) {
return <InputGroupText>{children}</InputGroupText>;
}

83
src/components/ui/input/index.tsx

@ -0,0 +1,83 @@
'use client';
import { ChangeEvent, MouseEventHandler, ReactNode } from 'react';
import { Input } from 'reactstrap';
interface Props {
children: ReactNode;
className?: string;
readOnly?: boolean;
checked?: boolean;
label?: string;
id?: string;
onClick?: MouseEventHandler<HTMLInputElement>;
onChange?: (event: ChangeEvent<HTMLInputElement>) => void;
value?: any;
name?: string;
type?: any;
inline?: boolean;
bsSize?: 'lg' | 'sm' | undefined;
placeholder?: string;
disabled?: boolean;
onKeyPress?: (event: React.KeyboardEvent<HTMLInputElement>) => void;
}
/**
*
* @param children: ReactNode
* @param className?:string
* @param readOnly?:boolean default false
* @param checked?:boolean
* @param label?:string
* @param id?:string
* @param onClick?:MouseEventHandler<HTMLButtonElement>
* @param onChange?:MouseEventHandler<HTMLButtonElement>
* @param value?:any
* @param name?:string
* @param type?:string
* @param inline?:boolean default false
* @param bsSize?: "lg" | "sm"
* @param placeholder?:string
* @param onKeyPress?: (event: React.KeyboardEvent<HTMLInputElement>) => void;
* @param disabled?:boolean default false
*/
export default function CustomInput({
children,
className,
label,
checked,
readOnly = false,
id,
onClick,
onChange,
value,
name,
type,
inline = false,
bsSize,
placeholder,
disabled = false,
onKeyPress
}: Props) {
return (
<>
<Input
className={className}
id={id}
checked={checked}
readOnly={readOnly}
label={label}
value={value}
name={name}
disabled={disabled}
type={type}
bsSize={bsSize}
onClick={onClick}
onChange={onChange}
onKeyPress={onKeyPress}
placeholder={placeholder}
>
{children}
</Input>
</>
);
}

16
src/components/ui/label/index.tsx

@ -0,0 +1,16 @@
import { ReactNode } from 'react';
import { Label } from 'reactstrap';
interface Props {
children: ReactNode;
htmlFor?: string;
className?: string;
}
export default function CustomLabel({ children, htmlFor, className }: Props) {
return (
<Label for={htmlFor} className={className}>
{children}
</Label>
);
}

16
src/components/ui/media/index.tsx

@ -0,0 +1,16 @@
import { ReactNode } from 'react';
import { Media } from 'reactstrap';
interface Props {
children: ReactNode;
body?: string;
}
/**
*
* @param children: ReactNode
* @param body?:string
*/
export default function CustomMedia({ children, body }: Props) {
return <Media body={body}>{children}</Media>;
}

22
src/components/ui/modal/CustomModal.tsx

@ -0,0 +1,22 @@
import { Children, ReactNode } from 'react';
import { Modal, ModalHeader, ModalBody, ModalFooter, Button } from 'reactstrap';
interface Props {
isOpen: boolean;
toggle: () => void;
className?: string;
children: ReactNode;
}
export default function CustomModal({
isOpen,
toggle,
className,
children
}: Props) {
return (
<Modal isOpen={isOpen} toggle={toggle} className={className}>
{children}
</Modal>
);
}

16
src/components/ui/modal/CustomModalBody.tsx

@ -0,0 +1,16 @@
import { ReactNode } from 'react';
import { ModalBody } from 'reactstrap';
interface Props {
children: ReactNode;
className?: string;
}
/**
*
* @param children: ReactNode
* @param className?:string
*/
export default function CustomModalBody({ children, className }: Props) {
return <ModalBody className={className}>{children}</ModalBody>;
}

26
src/components/ui/modal/CustomModalFooter.tsx

@ -0,0 +1,26 @@
import { ReactNode } from 'react';
import { ModalFooter } from 'reactstrap';
interface Props {
children: ReactNode;
className?: string;
style?: React.CSSProperties;
}
/**
*
* @param children: ReactNode
* @param className?:string
* @param style?: React.CSSProperties
*/
export default function CustomModalFooter({
children,
className,
style
}: Props) {
return (
<ModalFooter className={className} style={style}>
{children}
</ModalFooter>
);
}

26
src/components/ui/modal/CustomModalHeader.tsx

@ -0,0 +1,26 @@
import { ReactNode } from 'react';
import { ModalHeader } from 'reactstrap';
interface Props {
children: ReactNode;
toggle: () => void;
className?: string;
}
/**
*
* @param children: ReactNode
* @param toggle: () => void
* @param className?:string
*/
export default function CustomModalHeader({
children,
toggle,
className
}: Props) {
return (
<ModalHeader toggle={toggle} className={className}>
{children}
</ModalHeader>
);
}

23
src/components/ui/nav/CustomNavItem.tsx

@ -0,0 +1,23 @@
import { NavItem } from 'reactstrap';
import { ReactNode } from 'react';
interface Props {
children: ReactNode;
className?: string;
active?: boolean;
}
/**
*
* @param children: ReactNode
* @param className?:string
* @param active?:boolean
*/
export default function CustomNavItem({ children, className, active }: Props) {
return (
<NavItem className={className} active={active}>
{children}
</NavItem>
);
}

22
src/components/ui/nav/CustomNavLink.tsx

@ -0,0 +1,22 @@
import { NavLink } from 'reactstrap';
import { MouseEventHandler, ReactNode } from 'react';
interface Props {
children: ReactNode;
className?: string;
active?: boolean;
onClick?: MouseEventHandler<HTMLInputElement>;
}
export default function CustomNavLink({
children,
className,
active,
onClick
}: Props) {
return (
<NavLink className={className} onClick={onClick}>
{children}
</NavLink>
);
}

30
src/components/ui/nav/index.tsx

@ -0,0 +1,30 @@
import { Nav } from 'reactstrap';
import { ReactNode } from 'react';
interface Props {
className?: string;
children: ReactNode;
tabs?: boolean;
pills?: boolean;
}
/**
*
* @param children: ReactNode
* @param className?:string
* @param tabs?:boolean
* @param pills?:boolean
*/
export default function CustomNav({
className,
tabs = false,
children,
pills = false
}: Props) {
return (
<Nav tabs={tabs} className={className} pills={pills}>
{children}
</Nav>
);
}

21
src/components/ui/popover/index.tsx

@ -0,0 +1,21 @@
import { ReactNode } from 'react';
import { UncontrolledPopover, PopoverBody } from 'reactstrap';
interface Props {
children: ReactNode;
target?: string;
toggle?: () => void;
}
export default function CustomPopover({ children, target, toggle }: Props) {
return (
<UncontrolledPopover
trigger='focus'
placement='bottom'
target={target}
toggle={toggle}
>
<PopoverBody className='pal-popover-body'>{children}</PopoverBody>
</UncontrolledPopover>
);
}

17
src/components/ui/row/index.tsx

@ -0,0 +1,17 @@
import { Row } from 'reactstrap';
import { ReactNode } from 'react';
interface Props {
children: ReactNode;
className?: string;
}
/**
*
* @param children: ReactNode
* @param className?:string
*/
export default function CustomRow({ children, className }: Props) {
return <Row className={className}>{children}</Row>;
}

17
src/components/ui/spinner/index.tsx

@ -0,0 +1,17 @@
import { Spinner } from 'reactstrap';
import React from 'react';
interface Props {
children: React.ReactNode;
color?: 'primary';
}
/**
*
* @param children: ReactNode
* @param color: default='primary'
*/
export default function CustomSpinner({ children, color = 'primary' }: Props) {
return <Spinner color={color}>{children}</Spinner>;
}

17
src/components/ui/tab/CustomTabContent.tsx

@ -0,0 +1,17 @@
import { ReactNode } from 'react';
import { TabContent } from 'reactstrap';
interface Props {
children: ReactNode;
activeTab?: string;
}
/**
*
* @param children: ReactNode
* @param className?:string
*/
export default function CustomTabContent({ children, activeTab }: Props) {
return <TabContent activeTab={activeTab}>{children}</TabContent>;
}

17
src/components/ui/tab/CustomTabPane.tsx

@ -0,0 +1,17 @@
import { ReactNode } from 'react';
import { TabPane } from 'reactstrap';
interface Props {
tabId: string;
children: ReactNode;
}
/**
*
* @param children: ReactNode
* @param tabId: string
*/
export default function CustomTabPane({ tabId, children }: Props) {
return <TabPane tabId={tabId}>{children}</TabPane>;
}

15
src/components/ui/table/index.tsx

@ -0,0 +1,15 @@
import { ReactNode } from 'react';
import { Table } from 'reactstrap';
interface Props {
children: ReactNode;
}
/**
*
* @param children: ReactNode
*/
export default function CustomTable({ children }: Props) {
return <Table responsive>{children}</Table>;
}

2
src/containers/basis/dron/BasisDronDetailContainer.js

@ -1,5 +1,5 @@
import { useEffect, useState } from 'react';
import { Button, Col, Row } from 'reactstrap';
import { Button, Col, Row } from '../../../components/ui/index';
import { useForm } from 'react-hook-form';
import { useDispatch, useSelector } from 'react-redux';
// yup

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save