UNPKG

@meleon/uni-ui

Version:

A uniapp components library written in vue3 and typescript

1 lines 1.11 kB
import{computed,reactive,toRefs,watch}from"vue";import{useState}from"@meleon/uni-ui/hooks";import{convertDate2Dayjs,getNow,methods}from"@meleon/uni-ui/utils";import{usePickerSpan}from"./index";export default function usePickerHeader(e){const{mode:a,pickerValue:u,defaultPickerValue:t,selectedValue:o,format:l,onChange:v}=toRefs(e),r=computed((()=>a.value||"date")),{span:d,superSpan:c}=usePickerSpan(reactive({mode:r})),n=computed((()=>convertDate2Dayjs(u.value,l.value))),s=computed((()=>convertDate2Dayjs(t.value,l.value))),[m,i]=useState(s.value||getNow()),p=computed((()=>n.value||m.value)),h=(e,a=!0)=>{var u;e&&(a&&(null===(u=null==v?void 0:v.value)||void 0===u||u.call(v,e)),i(e))};o.value&&i(o.value),watch((()=>o.value),(e=>{h(e)}));const f=computed((()=>d.value!==c.value)),S=computed((()=>({onSuperPrev:()=>{h(methods.subtract(p.value,c.value,"M"))},onPrev:f.value?()=>{h(methods.subtract(p.value,d.value,"M"))}:void 0,onNext:f.value?()=>{h(methods.add(p.value,d.value,"M"))}:void 0,onSuperNext:()=>{h(methods.add(p.value,c.value,"M"))}})));return{headerValue:p,setHeaderValue:h,headerOperations:S}}