-
[ToyProject-Todomate] ํฌ๋๋ฉ์ดํธ ํด๋ก ํ๋ก์ ํธ 19WEB Dev/ToyProject 2021. 12. 28. 23:12728x90
๐ท CloneTodo โ - Todomate Clone Project | Team CloneMate
CloneTodo : ๋ง์ ์ฌ๋๋ค์ด ์ฌ๋ํ๋ ํฌ๋๋ฉ์ดํธ๋ฅผ ํด๋ก ํ์ฌ ์น ์๋น์ค๋ฅผ ๋ฐฐํฌํด๋ณด๋ ํ๋ก์ ํธ
์ค๋์ ํ ์ผ์ Explore์ ๋ฌ๋ ฅ๋ถ๋ถ์ ๋ง๋๋ ์ผ์ด๋ค.
๋ฌ๋ ฅ์ ๊ฒฝ์ฐ NHN TOAST์์ ์ ๊ณตํ๋ Calendar UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ํ์๋ค.
๊ทธ๋์ TOAST์ ๊ณต์๋ฌธ์์์ ์ ์ฉ๋ฐฉ๋ฒ์ ๋ฐ๋ผํด๋ณธ๋ค.
1. ์ค์น
npm ์ด๋ bower, CDN์ ํตํด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํ ์ ์๋ค.
๋ฆฌ์กํธ ํ๋ก์ ํธ์ด๊ธฐ ๋๋ฌธ์ ๊ฐํธํ CDN ๋ณด๋ค๋ npm์ ํตํด ํจํค์ง๋ฅผ ์ค์นํ์.
npm install --save @toast-ui/react-calendar
2. Calendar ํจํค์ง์ CSS๋ฅผ import ํด์จ๋ค.
import Calendar from '@toast-ui/react-calendar'; import 'tui-calendar/dist/tui-calendar.css';
3. ์ ์ฉํ๊ธฐ
๊ณต์๋ฌธ์๋ ํจ์ํ์ด ์๋ ํด๋์คํ ์ปดํฌ๋ํธ๋ฅผ ์ ๊ณตํ๊ณ ์๋ค.
์ ๋ชจ๋ฅด๊ฒ ์ผ๋ ์ผ๋จ ๋ค ๋๋ ค๋๊ณ ๋ณธ๋ค.
import React from 'react'; import Box from '@mui/material/Box'; import Calendar from '@toast-ui/react-calendar'; import 'tui-calendar/dist/tui-calendar.css'; const calendarOptions = { // sort of option properties. }; class CalendarBox extends React.Component { calendarRef = React.createRef(); handleClickNextButton = () => { const calendarInstance = this.calendarRef.current.getInstance(); calendarInstance.next(); }; handleClickButton = () => { this.calendarRef.current.getRootElement().classList.add('calendar-root'); }; handleClickDayname = (ev) => { // view : week, day console.group('onClickDayname'); console.log(ev.date); console.groupEnd(); }; render() { return ( <> <Calendar ref={this.calendarRef} {...calendarOptions} onClickDayname={this.handleClickDayname} /> <button onClick={this.handleClickNextButton}>Go next!</button> </> ); } } export default CalendarBox;
์ด๋ ๊ฒ ๋ฃ์ด๋๊ณ ๋๋... ์ฐ๋ฆฌ์ ๊ณํ๋ณด๋ค ๋ ๋ฌด๊ฒ๊ณ ํ๋ คํ๊ณ "์ด๋ ค์ด" ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋๊ฐ ์ถ๋ค.
์ฐจ๋ผ๋ฆฌ ๊ทธ๋ฅ ๋ฌ๋ ฅ๋ชจ์๋ง ๋ํ๋๋๊ฒ ๋ ๋ซ์ง ์์๊น ใ ใ
๊ทธ๋์ MUI์ Date Picker ์ค์ Landscape Orientation์ ์ ์ฉํด๋ณธ๋ค.
1. MUI์ ๋ฌ๋ ฅ, ์๊ฐ ๋ฑ์ ์ด์ฉํ๊ธฐ ์ํ ํจํค์ง ์ค์น
npm์ ์ด์ฉํด ์๋ ์๊ฐ, ๋ ์ง ๊ด๋ จ ํจํค์ง๋ฅผ ์ค์นํด์ค๋ค.
๋ญ.. ์ค์นํด๋ ์๊ด์ ์๋ ๊ฒ ๊ฐ๋ค.
// date-fns npm install @date-io/date-fns // or for Day.js npm install -s @date-io/dayjs // or for Luxon npm install -s @date-io/luxon // or for Moment.js npm install @date-io/moment
2. dateAdapter ํจํค์ง๋ฅผ import ํด์จ๋ค.
// date-fns import DateAdapter from '@mui/lab/AdapterDateFns'; // or for Day.js import DateAdapter from '@mui/lab/AdapterDayjs'; // or for Luxon import DateAdapter from '@mui/lab/AdapterLuxon'; // or for Moment.js import DateAdapter from '@mui/lab/AdapterMoment';
์ฌ๊ธฐ๊น์ง ํ๊ณ ํ๋จ์ ์ฝ๋๋ฅผ ์์ฑํ๋๋ฐ
Can't resolve '@mui/lab/AdapterDateFns' in ํ์ผ๊ฒฝ๋ก ์ค๋ฅ๊ฐ ๋ด๋ค.
์คํ์ค๋ฒํ๋ก์ฐ์ ์ฐพ์๋ณด๋ ์ด๊ฒ๋ ๋ฒ์ ๋ฌธ์ ์ธ๊ฑฐ ๊ฐ์๋ฐ (์ ๋ฐ! ํธํ ์ข!)
Module not found: Can't resolve '@mui/lab/AdapterDateFns'
I was using the Material UI Timepicker but after updating to MUI 5 it is not working anymore. I updated everything to @next and @material-ui/core (version 5.0.0-beta.5) and @material-ui/lab (versio...
stackoverflow.com
์๋ @mui/lab์ ์ค์นํด์ค์ผ ํ๋ค.
npm i @mui/lab
์์ @mui/lab ๊ฐ์ง๊ณ ์๋๋ฉด
npm i @mui/material npm i date-fns
๋ ์ค์นํด์ฃผ์.
๊ฒฐ๋ก
3. ๋๋จธ์ง ์ปดํฌ๋ํธ ๋ค์ import ํด์จ๋ค.
import isWeekend from 'date-fns/isWeekend'; import TextField from '@mui/material/TextField'; import AdapterDateFns from '@mui/lab/AdapterDateFns'; import LocalizationProvider from '@mui/lab/LocalizationProvider'; import StaticDatePicker from '@mui/lab/StaticDatePicker';
4. ๊ทธ๋ฆฌ๊ณ ์์์ฝ๋๋ฅผ ๊ฐ์ง๊ณ ์จ๋ค.
<LocalizationProvider dateAdapter={AdapterDateFns}> <StaticDatePicker orientation="landscape" openTo="day" value={value} shouldDisableDate={isWeekend} onChange={(newValue) => { setValue(newValue); }} renderInput={(params) => <TextField {...params} />} /> </LocalizationProvider>
ํจ์ฌ ์์๋ค..!
728x90'WEB Dev > ToyProject' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ToyProject-Todomate] ํฌ๋๋ฉ์ดํธ ํด๋ก ํ๋ก์ ํธ 21 (0) 2022.01.04 [ToyProject-Todomate] ํฌ๋๋ฉ์ดํธ ํด๋ก ํ๋ก์ ํธ 20 (0) 2022.01.02 [ToyProject-Todomate] ํฌ๋๋ฉ์ดํธ ํด๋ก ํ๋ก์ ํธ 18 (0) 2021.12.28 [ToyProject-Todomate] ํฌ๋๋ฉ์ดํธ ํด๋ก ํ๋ก์ ํธ 17 (0) 2021.12.26 [ToyProject-Todomate] ํฌ๋๋ฉ์ดํธ ํด๋ก ํ๋ก์ ํธ 16 (0) 2021.12.26