diff --git a/src/components/sections/dictionary/courselist/CourseListTabs.jsx b/src/components/sections/dictionary/courselist/CourseListTabs.jsx index 9d03173..3f15d10 100644 --- a/src/components/sections/dictionary/courselist/CourseListTabs.jsx +++ b/src/components/sections/dictionary/courselist/CourseListTabs.jsx @@ -17,6 +17,8 @@ import courseListsShape from '../../../../shapes/state/dictionary/CourseListsSha import Scroller from '../../../Scroller'; +import styles from './CourseListTabs.module.scss'; + class CourseListTabs extends Component { componentDidUpdate(prevProps, prevState, snapshot) { const { user, selectedListCode } = this.props; @@ -176,58 +178,48 @@ class CourseListTabs extends Component { const { user, selectedListCode } = this.props; return ( -
+
-
+
this.changeTab(CourseListCode.SEARCH)}> - {t('ui.tab.searchShort')} + {t('ui.tab.searchShort')}
this.changeTab(CourseListCode.BASIC)}> - {t('ui.tab.basicShort')} + {t('ui.tab.basicShort')}
{!user ? null : user.departments.map((d) => (
this.changeTab(d.code)}> - {t('ui.tab.majorShort')} + {t('ui.tab.majorShort')}
))}
this.changeTab(CourseListCode.HUMANITY)}> - {t('ui.tab.humanityShort')} + {t('ui.tab.humanityShort')}
this.changeTab(CourseListCode.TAKEN)}> - {t('ui.tab.takenShort')} + {t('ui.tab.takenShort')}
diff --git a/src/components/sections/dictionary/courselist/CourseListTabs.module.scss b/src/components/sections/dictionary/courselist/CourseListTabs.module.scss new file mode 100644 index 0000000..2ca19d7 --- /dev/null +++ b/src/components/sections/dictionary/courselist/CourseListTabs.module.scss @@ -0,0 +1,72 @@ +@use '@/sass/abstracts/color' as color; +@use '@/sass/abstracts/font' as font; +@use '@/sass/abstracts/mixins' as *; +@use '@/sass/abstracts/variables' as *; + +.wrapper { + grid-area: course-list-tabs; + + overflow: hidden; + + font-size: font.$size-small; + line-height: font.$line-height-small; + color: color.$text-light; +} + +.list { + @include mixin-media-portrait { + display: flex; + flex-direction: row; + } +} + +.tab { + display: inline-block; + + padding: $tab-padding; + + background-color: color.$tab-background-dark; + + text-align: center; + white-space: nowrap; + + &[aria-selected='true'] { + background-color: color.$tab-background; + + color: color.$text-normal; + } + &[aria-selected='false']:hover { + background-color: color.$tab-background-darker; + cursor: pointer; + } + + @include mixin-media-landscape { + margin-bottom: $tab-margin; + margin-left: auto; + border-radius: $tab-border-radius 0 0 $tab-border-radius; + + line-height: 0; + + touch-action: pinch-zoom; + } + @include mixin-media-portrait { + flex: 1 1 0; + + margin-right: $tab-margin; + border-radius: $tab-border-radius $tab-border-radius 0 0; + + touch-action: pan-x pinch-zoom; + + &:last-child { + margin-right: 0; + } + } +} + +.title { + margin-left: 6px; + + @include mixin-media-landscape { + display: none; + } +} diff --git a/src/components/sections/planner/courselist/CourseListTabs.jsx b/src/components/sections/planner/courselist/CourseListTabs.jsx index 4f7a589..3064a79 100644 --- a/src/components/sections/planner/courselist/CourseListTabs.jsx +++ b/src/components/sections/planner/courselist/CourseListTabs.jsx @@ -17,6 +17,9 @@ import courseListsShape from '../../../../shapes/state/dictionary/CourseListsSha import Scroller from '../../../Scroller'; +// FIXME: It uses the dictionary style as the structure is the same. +import styles from '../../dictionary/courselist/CourseListTabs.module.scss'; + class CourseListTabs extends Component { componentDidUpdate(prevProps, prevState, snapshot) { const { user, selectedListCode } = this.props; @@ -176,58 +179,48 @@ class CourseListTabs extends Component { const { user, selectedListCode } = this.props; return ( -
+
-
+
this.changeTab(CourseListCode.SEARCH)}> - {t('ui.tab.searchShort')} + {t('ui.tab.searchShort')}
this.changeTab(CourseListCode.BASIC)}> - {t('ui.tab.basicShort')} + {t('ui.tab.basicShort')}
{!user ? null : user.departments.map((d) => (
this.changeTab(d.code)}> - {t('ui.tab.majorShort')} + {t('ui.tab.majorShort')}
))}
this.changeTab(CourseListCode.HUMANITY)}> - {t('ui.tab.humanityShort')} + {t('ui.tab.humanityShort')}
this.changeTab(CourseListCode.TAKEN)}> - {t('ui.tab.takenShort')} + {t('ui.tab.takenShort')}
{/* 장바구니로 바꾸기 */}
diff --git a/src/sass/App.module.scss b/src/sass/App.module.scss index 754a1d8..c178dd2 100644 --- a/src/sass/App.module.scss +++ b/src/sass/App.module.scss @@ -332,7 +332,6 @@ a { } } - &--course-list, &--lecture-list { & .tabs__flexbox { @include mixin-media-portrait { @@ -371,10 +370,6 @@ a { grid-area: lecture-list-tabs; } - &--course-list { - grid-area: course-list-tabs; - } - &--timetable { grid-area: timetable-tabs;