25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 

614 satır
21 KiB

  1. import React from "react";
  2. // plugin that creates slider
  3. import Slider from "nouislider";
  4. // @material-ui/core components
  5. import { makeStyles } from "@material-ui/core/styles";
  6. import InputAdornment from "@material-ui/core/InputAdornment";
  7. import FormControlLabel from "@material-ui/core/FormControlLabel";
  8. import Checkbox from "@material-ui/core/Checkbox";
  9. import Radio from "@material-ui/core/Radio";
  10. import Switch from "@material-ui/core/Switch";
  11. // @material-ui/icons
  12. import Favorite from "@material-ui/icons/Favorite";
  13. import People from "@material-ui/icons/People";
  14. import Check from "@material-ui/icons/Check";
  15. import FiberManualRecord from "@material-ui/icons/FiberManualRecord";
  16. // core components
  17. import GridContainer from "components/Grid/GridContainer.js";
  18. import GridItem from "components/Grid/GridItem.js";
  19. import Button from "components/CustomButtons/Button.js";
  20. import CustomInput from "components/CustomInput/CustomInput.js";
  21. import CustomLinearProgress from "components/CustomLinearProgress/CustomLinearProgress.js";
  22. import Paginations from "components/Pagination/Pagination.js";
  23. import Badge from "components/Badge/Badge.js";
  24. import styles from "assets/jss/nextjs-material-kit/pages/componentsSections/basicsStyle.js";
  25. const useStyles = makeStyles(styles);
  26. export default function SectionBasics() {
  27. const classes = useStyles();
  28. const [checked, setChecked] = React.useState([24, 22]);
  29. const [selectedEnabled, setSelectedEnabled] = React.useState("b");
  30. const [checkedA, setCheckedA] = React.useState(true);
  31. const [checkedB, setCheckedB] = React.useState(false);
  32. React.useEffect(() => {
  33. if (
  34. !document
  35. .getElementById("sliderRegular")
  36. .classList.contains("noUi-target")
  37. ) {
  38. Slider.create(document.getElementById("sliderRegular"), {
  39. start: [40],
  40. connect: [true, false],
  41. step: 1,
  42. range: { min: 0, max: 100 }
  43. });
  44. }
  45. if (
  46. !document.getElementById("sliderDouble").classList.contains("noUi-target")
  47. ) {
  48. Slider.create(document.getElementById("sliderDouble"), {
  49. start: [20, 60],
  50. connect: [false, true, false],
  51. step: 1,
  52. range: { min: 0, max: 100 }
  53. });
  54. }
  55. return function cleanup() {};
  56. });
  57. const handleToggle = value => {
  58. const currentIndex = checked.indexOf(value);
  59. const newChecked = [...checked];
  60. if (currentIndex === -1) {
  61. newChecked.push(value);
  62. } else {
  63. newChecked.splice(currentIndex, 1);
  64. }
  65. setChecked(newChecked);
  66. };
  67. return (
  68. <div className={classes.sections}>
  69. <div className={classes.container}>
  70. <div className={classes.title}>
  71. <h2>Basic Elements</h2>
  72. </div>
  73. <div id="buttons">
  74. <div className={classes.title}>
  75. <h3>
  76. Buttons
  77. <br />
  78. <small>Pick your style</small>
  79. </h3>
  80. </div>
  81. <GridContainer justify="center">
  82. <GridItem xs={12} sm={12} md={8}>
  83. <Button color="primary">Default</Button>
  84. <Button color="primary" round>
  85. round
  86. </Button>
  87. <Button color="primary" round>
  88. <Favorite className={classes.icons} /> with icon
  89. </Button>
  90. <Button justIcon round color="primary">
  91. <Favorite className={classes.icons} />
  92. </Button>
  93. <Button color="primary" simple>
  94. simple
  95. </Button>
  96. </GridItem>
  97. </GridContainer>
  98. <div className={classes.title}>
  99. <h3>
  100. <small>Pick your size</small>
  101. </h3>
  102. </div>
  103. <GridContainer justify="center">
  104. <GridItem xs={12} sm={12} md={8}>
  105. <Button color="primary" size="sm">
  106. Small
  107. </Button>
  108. <Button color="primary">Regular</Button>
  109. <Button color="primary" size="lg">
  110. Large
  111. </Button>
  112. </GridItem>
  113. </GridContainer>
  114. <div className={classes.title}>
  115. <h3>
  116. <small>Pick your color</small>
  117. </h3>
  118. </div>
  119. <GridContainer justify="center">
  120. <GridItem xs={12} sm={12} md={8}>
  121. <Button>Default</Button>
  122. <Button color="primary">Primary</Button>
  123. <Button color="info">Info</Button>
  124. <Button color="success">Success</Button>
  125. <Button color="warning">Warning</Button>
  126. <Button color="danger">Danger</Button>
  127. <Button color="rose">Rose</Button>
  128. </GridItem>
  129. </GridContainer>
  130. </div>
  131. <div className={classes.space50} />
  132. <div id="inputs">
  133. <div className={classes.title}>
  134. <h3>Inputs</h3>
  135. </div>
  136. <GridContainer>
  137. <GridItem xs={12} sm={4} md={4} lg={3}>
  138. <CustomInput
  139. id="regular"
  140. inputProps={{
  141. placeholder: "Regular"
  142. }}
  143. formControlProps={{
  144. fullWidth: true
  145. }}
  146. />
  147. </GridItem>
  148. <GridItem xs={12} sm={4} md={4} lg={3}>
  149. <CustomInput
  150. labelText="With floating label"
  151. id="float"
  152. formControlProps={{
  153. fullWidth: true
  154. }}
  155. />
  156. </GridItem>
  157. <GridItem xs={12} sm={4} md={4} lg={3}>
  158. <CustomInput
  159. labelText="Success input"
  160. id="success"
  161. success
  162. formControlProps={{
  163. fullWidth: true
  164. }}
  165. />
  166. </GridItem>
  167. <GridItem xs={12} sm={4} md={4} lg={3}>
  168. <CustomInput
  169. labelText="Error input"
  170. id="error"
  171. error
  172. formControlProps={{
  173. fullWidth: true
  174. }}
  175. />
  176. </GridItem>
  177. <GridItem xs={12} sm={4} md={4} lg={3}>
  178. <CustomInput
  179. labelText="With material Icons"
  180. id="material"
  181. formControlProps={{
  182. fullWidth: true
  183. }}
  184. inputProps={{
  185. endAdornment: (
  186. <InputAdornment position="end">
  187. <People />
  188. </InputAdornment>
  189. )
  190. }}
  191. />
  192. </GridItem>
  193. <GridItem xs={12} sm={4} md={4} lg={3}>
  194. <CustomInput
  195. labelText="With Font Awesome Icons"
  196. id="font-awesome"
  197. formControlProps={{
  198. fullWidth: true
  199. }}
  200. inputProps={{
  201. endAdornment: (
  202. <InputAdornment position="end">
  203. <i className="fas fa-users" />
  204. </InputAdornment>
  205. )
  206. }}
  207. />
  208. </GridItem>
  209. </GridContainer>
  210. </div>
  211. <div className={classes.space70} />
  212. <div id="checkRadios">
  213. <GridContainer>
  214. <GridItem xs={12} sm={6} md={4} lg={3}>
  215. <div className={classes.title}>
  216. <h3>Checkboxes</h3>
  217. </div>
  218. <div
  219. className={
  220. classes.checkboxAndRadio +
  221. " " +
  222. classes.checkboxAndRadioHorizontal
  223. }
  224. >
  225. <FormControlLabel
  226. control={
  227. <Checkbox
  228. tabIndex={-1}
  229. onClick={() => handleToggle(21)}
  230. checkedIcon={<Check className={classes.checkedIcon} />}
  231. icon={<Check className={classes.uncheckedIcon} />}
  232. classes={{
  233. checked: classes.checked,
  234. root: classes.checkRoot
  235. }}
  236. />
  237. }
  238. classes={{ label: classes.label, root: classes.labelRoot }}
  239. label="Unchecked"
  240. />
  241. </div>
  242. <div
  243. className={
  244. classes.checkboxAndRadio +
  245. " " +
  246. classes.checkboxAndRadioHorizontal
  247. }
  248. >
  249. <FormControlLabel
  250. control={
  251. <Checkbox
  252. tabIndex={-1}
  253. onClick={() => handleToggle(22)}
  254. checked={checked.indexOf(22) !== -1 ? true : false}
  255. checkedIcon={<Check className={classes.checkedIcon} />}
  256. icon={<Check className={classes.uncheckedIcon} />}
  257. classes={{
  258. checked: classes.checked,
  259. root: classes.checkRoot
  260. }}
  261. />
  262. }
  263. classes={{ label: classes.label, root: classes.labelRoot }}
  264. label="Checked"
  265. />
  266. </div>
  267. <div
  268. className={
  269. classes.checkboxAndRadio +
  270. " " +
  271. classes.checkboxAndRadioHorizontal
  272. }
  273. >
  274. <FormControlLabel
  275. disabled
  276. control={
  277. <Checkbox
  278. tabIndex={-1}
  279. checkedIcon={<Check className={classes.checkedIcon} />}
  280. icon={<Check className={classes.uncheckedIcon} />}
  281. classes={{
  282. checked: classes.checked,
  283. root: classes.checkRoot
  284. }}
  285. />
  286. }
  287. classes={{
  288. label: classes.label,
  289. disabled: classes.disabledCheckboxAndRadio,
  290. root: classes.labelRoot
  291. }}
  292. label="Disabled Unchecked"
  293. />
  294. </div>
  295. <div
  296. className={
  297. classes.checkboxAndRadio +
  298. " " +
  299. classes.checkboxAndRadioHorizontal
  300. }
  301. >
  302. <FormControlLabel
  303. disabled
  304. control={
  305. <Checkbox
  306. tabIndex={-1}
  307. checked={checked.indexOf(24) !== -1 ? true : false}
  308. checkedIcon={<Check className={classes.checkedIcon} />}
  309. icon={<Check className={classes.uncheckedIcon} />}
  310. classes={{
  311. checked: classes.checked,
  312. root: classes.checkRoot
  313. }}
  314. />
  315. }
  316. classes={{
  317. label: classes.label,
  318. disabled: classes.disabledCheckboxAndRadio,
  319. root: classes.labelRoot
  320. }}
  321. label="Disabled Checked"
  322. />
  323. </div>
  324. </GridItem>
  325. <GridItem xs={12} sm={6} md={4} lg={3}>
  326. <div className={classes.title}>
  327. <h3>Radio Buttons</h3>
  328. </div>
  329. <div
  330. className={
  331. classes.checkboxAndRadio +
  332. " " +
  333. classes.checkboxAndRadioHorizontal
  334. }
  335. >
  336. <FormControlLabel
  337. control={
  338. <Radio
  339. checked={selectedEnabled === "a"}
  340. onChange={() => setSelectedEnabled("a")}
  341. value="a"
  342. name="radio button enabled"
  343. aria-label="A"
  344. icon={
  345. <FiberManualRecord className={classes.radioUnchecked} />
  346. }
  347. checkedIcon={
  348. <FiberManualRecord className={classes.radioChecked} />
  349. }
  350. classes={{
  351. checked: classes.radio,
  352. root: classes.radioRoot
  353. }}
  354. />
  355. }
  356. classes={{
  357. label: classes.label,
  358. root: classes.labelRoot
  359. }}
  360. label="First Radio"
  361. />
  362. </div>
  363. <div
  364. className={
  365. classes.checkboxAndRadio +
  366. " " +
  367. classes.checkboxAndRadioHorizontal
  368. }
  369. >
  370. <FormControlLabel
  371. control={
  372. <Radio
  373. checked={selectedEnabled === "b"}
  374. onChange={() => setSelectedEnabled("b")}
  375. value="b"
  376. name="radio button enabled"
  377. aria-label="B"
  378. icon={
  379. <FiberManualRecord className={classes.radioUnchecked} />
  380. }
  381. checkedIcon={
  382. <FiberManualRecord className={classes.radioChecked} />
  383. }
  384. classes={{
  385. checked: classes.radio,
  386. root: classes.radioRoot
  387. }}
  388. />
  389. }
  390. classes={{
  391. label: classes.label,
  392. root: classes.labelRoot
  393. }}
  394. label="Second Radio"
  395. />
  396. </div>
  397. <div
  398. className={
  399. classes.checkboxAndRadio +
  400. " " +
  401. classes.checkboxAndRadioHorizontal
  402. }
  403. >
  404. <FormControlLabel
  405. disabled
  406. control={
  407. <Radio
  408. checked={false}
  409. value="a"
  410. name="radio button disabled"
  411. aria-label="B"
  412. icon={
  413. <FiberManualRecord className={classes.radioUnchecked} />
  414. }
  415. checkedIcon={
  416. <FiberManualRecord className={classes.radioChecked} />
  417. }
  418. classes={{
  419. checked: classes.radio,
  420. disabled: classes.disabledCheckboxAndRadio,
  421. root: classes.radioRoot
  422. }}
  423. />
  424. }
  425. classes={{
  426. label: classes.label,
  427. root: classes.labelRoot
  428. }}
  429. label="Disabled Unchecked Radio"
  430. />
  431. </div>
  432. <div
  433. className={
  434. classes.checkboxAndRadio +
  435. " " +
  436. classes.checkboxAndRadioHorizontal
  437. }
  438. >
  439. <FormControlLabel
  440. disabled
  441. control={
  442. <Radio
  443. checked={true}
  444. value="b"
  445. name="radio button disabled"
  446. aria-label="B"
  447. icon={
  448. <FiberManualRecord className={classes.radioUnchecked} />
  449. }
  450. checkedIcon={
  451. <FiberManualRecord className={classes.radioChecked} />
  452. }
  453. classes={{
  454. checked: classes.radio,
  455. disabled: classes.disabledCheckboxAndRadio,
  456. root: classes.radioRoot
  457. }}
  458. />
  459. }
  460. classes={{ label: classes.label, root: classes.labelRoot }}
  461. label="Disabled Checked Radio"
  462. />
  463. </div>
  464. </GridItem>
  465. <GridItem xs={12} sm={6} md={4} lg={3}>
  466. <div className={classes.title}>
  467. <h3>Toggle Buttons</h3>
  468. </div>
  469. <div>
  470. <FormControlLabel
  471. control={
  472. <Switch
  473. checked={checkedA}
  474. onChange={event => setCheckedA(event.target.checked)}
  475. value="checkedA"
  476. classes={{
  477. switchBase: classes.switchBase,
  478. checked: classes.switchChecked,
  479. thumb: classes.switchIcon,
  480. track: classes.switchBar
  481. }}
  482. />
  483. }
  484. classes={{
  485. label: classes.label
  486. }}
  487. label="Toggle is on"
  488. />
  489. </div>
  490. <div>
  491. <FormControlLabel
  492. control={
  493. <Switch
  494. checked={checkedB}
  495. onChange={event => setCheckedB(event.target.checked)}
  496. value="checkedB"
  497. classes={{
  498. switchBase: classes.switchBase,
  499. checked: classes.switchChecked,
  500. thumb: classes.switchIcon,
  501. track: classes.switchBar
  502. }}
  503. />
  504. }
  505. classes={{
  506. label: classes.label
  507. }}
  508. label="Toggle is off"
  509. />
  510. </div>
  511. </GridItem>
  512. </GridContainer>
  513. </div>
  514. <div className={classes.space70} />
  515. <div id="progress">
  516. <GridContainer>
  517. <GridItem xs={12} sm={12} md={6}>
  518. <div className={classes.title}>
  519. <h3>Progress Bars</h3>
  520. </div>
  521. <CustomLinearProgress
  522. variant="determinate"
  523. color="primary"
  524. value={30}
  525. />
  526. <CustomLinearProgress
  527. variant="determinate"
  528. color="info"
  529. value={60}
  530. />
  531. <CustomLinearProgress
  532. variant="determinate"
  533. color="success"
  534. value={100}
  535. style={{ width: "35%", display: "inline-block" }}
  536. />
  537. <CustomLinearProgress
  538. variant="determinate"
  539. color="warning"
  540. value={100}
  541. style={{ width: "20%", display: "inline-block" }}
  542. />
  543. <CustomLinearProgress
  544. variant="determinate"
  545. color="danger"
  546. value={25}
  547. style={{ width: "45%", display: "inline-block" }}
  548. />
  549. </GridItem>
  550. <GridItem xs={12} sm={12} md={6}>
  551. <div className={classes.title}>
  552. <h3>Pagination</h3>
  553. </div>
  554. <Paginations
  555. pages={[
  556. { text: 1 },
  557. { text: "..." },
  558. { text: 5 },
  559. { text: 6 },
  560. { active: true, text: 7 },
  561. { text: 8 },
  562. { text: 9 },
  563. { text: "..." },
  564. { text: 12 }
  565. ]}
  566. />
  567. <Paginations
  568. pages={[
  569. { text: "PREV" },
  570. { text: 1 },
  571. { text: 2 },
  572. { active: true, text: 3 },
  573. { text: 4 },
  574. { text: 5 },
  575. { text: "NEXT" }
  576. ]}
  577. color="info"
  578. />
  579. </GridItem>
  580. </GridContainer>
  581. </div>
  582. <div id="sliders">
  583. <GridContainer>
  584. <GridItem xs={12} sm={12} md={6}>
  585. <div className={classes.title}>
  586. <h3>Sliders</h3>
  587. </div>
  588. <div id="sliderRegular" className="slider-primary" />
  589. <br />
  590. <div id="sliderDouble" className="slider-info" />
  591. </GridItem>
  592. <GridItem xs={12} sm={12} md={6}>
  593. <div className={classes.title}>
  594. <h3>Badges</h3>
  595. </div>
  596. <Badge>default</Badge>
  597. <Badge color="primary">primary</Badge>
  598. <Badge color="info">info</Badge>
  599. <Badge color="success">success</Badge>
  600. <Badge color="warning">warning</Badge>
  601. <Badge color="danger">danger</Badge>
  602. <Badge color="rose">rose</Badge>
  603. </GridItem>
  604. </GridContainer>
  605. </div>
  606. </div>
  607. </div>
  608. );
  609. }