
* Add gift card expiry status to gift card details provider WIP * Add gift card expiry handling in gift card update page header * Add gift card expiry handling to gift card update details tag section & refactor * Add gift card expiry handling to gift card update details expiry date section * Add gift card expiry handling to gift card update metadata fields, add disabled prop to metadata cards * Add comment * Add gift card expiry handling to gift card list & refactor * Change back some parts because of change of requirements * Extract messages * Remove comments, fix wrong expiry label being displayed in gift card list
43 lines
1.1 KiB
TypeScript
43 lines
1.1 KiB
TypeScript
import React, { createContext } from "react";
|
|
|
|
import { useGiftCardDetailsQuery } from "../../queries";
|
|
import { GiftCardDetails_giftCard } from "../../types/GiftCardDetails";
|
|
import { ExtendedGiftCard } from "./types";
|
|
import { getExtendedGiftCard } from "./utils";
|
|
|
|
interface GiftCardDetailsProviderProps {
|
|
children: React.ReactNode;
|
|
id: string;
|
|
}
|
|
|
|
export interface GiftCardDetailsConsumerProps {
|
|
giftCard: ExtendedGiftCard<GiftCardDetails_giftCard> | undefined;
|
|
loading: boolean;
|
|
}
|
|
|
|
export const GiftCardDetailsContext = createContext<
|
|
GiftCardDetailsConsumerProps
|
|
>(null);
|
|
|
|
const GiftCardDetailsProvider: React.FC<GiftCardDetailsProviderProps> = ({
|
|
children,
|
|
id
|
|
}) => {
|
|
const { data, loading } = useGiftCardDetailsQuery({
|
|
displayLoader: true,
|
|
variables: { id }
|
|
});
|
|
|
|
const providerValues: GiftCardDetailsConsumerProps = {
|
|
giftCard: getExtendedGiftCard(data?.giftCard),
|
|
loading
|
|
};
|
|
|
|
return (
|
|
<GiftCardDetailsContext.Provider value={providerValues}>
|
|
{children}
|
|
</GiftCardDetailsContext.Provider>
|
|
);
|
|
};
|
|
|
|
export default GiftCardDetailsProvider;
|