52 lines
1.8 KiB
TypeScript
52 lines
1.8 KiB
TypeScript
import { useRecord } from '@nocobase/client';
|
|
import React, { createContext, useContext, useState } from 'react';
|
|
import { SettlementStyleContext } from '../schema-initializer/SettlementStyleSwitchActionInitializer';
|
|
|
|
export const PdfIsDoubleContext = createContext({
|
|
isDouble: null,
|
|
setIsDouble: null,
|
|
});
|
|
|
|
export const PdfIsLoadContext = createContext({
|
|
settingType: null,
|
|
setSettingLoad: null,
|
|
});
|
|
|
|
export const PdfMargingTopContext = createContext({
|
|
margingTop: 0,
|
|
setMargingTop: null,
|
|
});
|
|
|
|
export const PdfIsDoubleProvider = (props) => {
|
|
const [isDouble, setIsDouble] = useState(false);
|
|
const [settingType, setSettingLoad] = useState(false);
|
|
const [margingTop, setMargingTop] = useState(0);
|
|
return (
|
|
<PdfMargingTopContext.Provider value={{ margingTop, setMargingTop }}>
|
|
<PdfIsDoubleContext.Provider value={{ isDouble, setIsDouble }}>
|
|
<PdfIsLoadContext.Provider value={{ settingType, setSettingLoad }}>{props.children}</PdfIsLoadContext.Provider>
|
|
</PdfIsDoubleContext.Provider>
|
|
</PdfMargingTopContext.Provider>
|
|
);
|
|
};
|
|
|
|
export const useRecordPdfPath = () => {
|
|
const record = useRecord();
|
|
const { isDouble } = useContext(PdfIsDoubleContext);
|
|
const { settingType } = useContext(PdfIsLoadContext);
|
|
const { margingTop } = useContext(PdfMargingTopContext);
|
|
return `/records:pdf?recordId=${record.id}&isDouble=${isDouble}&settingType=${settingType}&margingTop=${margingTop}`;
|
|
};
|
|
|
|
export const useWaybillPdfPath = () => {
|
|
const record = useRecord();
|
|
const recordId = record.__collectionName === 'records' ? record.waybill?.id : record.id;
|
|
return `/waybills:pdf?recordId=${recordId}`;
|
|
};
|
|
|
|
export const useSettlementPdfPath = () => {
|
|
const record = useRecord();
|
|
const { style } = useContext(SettlementStyleContext);
|
|
return `/settlements:pdf?settlementsId=${record.id}&type=${style}`;
|
|
};
|