Skip to content

Commit

Permalink
Merge pull request #1328 from XiaoMi/hotfix/#1326
Browse files Browse the repository at this point in the history
fix: #1326
  • Loading branch information
solarjoker authored Nov 17, 2020
2 parents 0782202 + 2b9607b commit 325c10d
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 34 deletions.
5 changes: 3 additions & 2 deletions components/date-picker/BasePicker.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -60,13 +60,14 @@ const BasePicker = ({
locale
})
const isLarge = altCalendar || altCalendarPreset || dateMarkRender || dateMarkPreset
const [showPanel, setShowPanel] = useState(false)
const [altCalendarPresetData, dateMarkPresetData] = useAltData({
altCalendar,
altCalendarPreset,
dateMarkRender,
dateMarkPreset
dateMarkPreset,
showPanel
})
const [showPanel, setShowPanel] = useState(false)
const inputChangeEvent = (val, dir) => {
if (val.isValid()) {
const oData = _.cloneDeep(outDate)
Expand Down
52 changes: 20 additions & 32 deletions components/date-picker/hooks/useAltData.js
Original file line number Diff line number Diff line change
@@ -1,25 +1,19 @@
import React, { useState, useEffect } from 'react'
import { getPRCDate, deconstructDate } from '../utils'

const useAltData = ({
altCalendarPreset,
altCalendar,
dateMarkPreset,
dateMarkRender
}) => {
const useAltData = ({ altCalendarPreset, altCalendar, dateMarkPreset, showPanel }) => {
const [altCalendarPresetData, setAltCalendarPresetData] = useState({})
const [dateMarkPresetData, setDateMarkPresetData] = useState({})

// 获取预置数据
const getLunarPresetData = () => {
const allPRCDate = {}
if (['zh-CN', 'id-ID'].includes(altCalendarPreset)) {
const _urlKey =
altCalendarPreset === 'zh-CN' ? 'PRCLunar' : 'IndiaHoliday'
getPRCDate(_urlKey).then(res => {
Object.keys(res.data).forEach(key => {
let oneYear = {}
res.data[key][_urlKey].forEach(item => {
const _urlKey = altCalendarPreset === 'zh-CN' ? 'PRCLunar' : 'IndiaHoliday'
getPRCDate(_urlKey).then((res) => {
Object.keys(res.data).forEach((key) => {
const oneYear = {}
res.data[key][_urlKey].forEach((item) => {
Object.assign(oneYear, {
[item.date.replace(/-/g, '/')]: {
...item,
Expand All @@ -29,14 +23,10 @@ const useAltData = ({
})
Object.assign(allPRCDate, oneYear)
})
setAltCalendarPresetData(
altCalendar ? getAltCalendarData(allPRCDate) : allPRCDate
)
setAltCalendarPresetData(altCalendar ? getAltCalendarData(allPRCDate) : allPRCDate)
})
} else {
setAltCalendarPresetData(
altCalendar ? getAltCalendarData(allPRCDate) : {}
)
setAltCalendarPresetData(altCalendar ? getAltCalendarData(allPRCDate) : {})
}
}
// 获取预置数据
Expand All @@ -45,19 +35,15 @@ const useAltData = ({
return
}
if (dateMarkPreset === 'zh-CN') {
getPRCDate('PRCHoliday').then(res => {
getPRCDate('PRCHoliday').then((res) => {
const allPRCDate = {}
Object.keys(res.data).forEach(key => {
Object.keys(res.data[key].PRCHoliday).forEach(elkey => {
Object.keys(res.data).forEach((key) => {
Object.keys(res.data[key].PRCHoliday).forEach((elkey) => {
allPRCDate[elkey.replace(/-/g, '/')] =
res.data[key].PRCHoliday[elkey] === '1' ? (
<span className='hi-datepicker__mark hi-datepicker__mark--rest'>
</span>
<span className="hi-datepicker__mark hi-datepicker__mark--rest"></span>
) : (
<span className='hi-datepicker__mark hi-datepicker__mark--work'>
</span>
<span className="hi-datepicker__mark hi-datepicker__mark--work"></span>
)
})
})
Expand All @@ -66,10 +52,10 @@ const useAltData = ({
}
}
// 合并用户自定义的日期信息作为presetData
const getAltCalendarData = allPRCDate => {
const getAltCalendarData = (allPRCDate) => {
const allData = {}
altCalendar.length > 0 &&
altCalendar.forEach(item => {
altCalendar.forEach((item) => {
const dateInfo = deconstructDate(item.date)
if (!Number.isNaN(dateInfo.year)) {
Object.assign(allData, {
Expand All @@ -81,9 +67,11 @@ const useAltData = ({
}

useEffect(() => {
altCalendarPreset && getLunarPresetData()
dateMarkPreset && getMarkPresetData()
}, [])
if (showPanel) {
altCalendarPreset && getLunarPresetData()
dateMarkPreset && getMarkPresetData()
}
}, [showPanel])
return [altCalendarPresetData, dateMarkPresetData]
}

Expand Down

0 comments on commit 325c10d

Please sign in to comment.