Digital delivery SDK reference
Protected digital-order delivery views and download actions.
Import these public values from @upstorr/theme-sdk/v1. Do not import their internal source files.
applyThemeDigitalDeliveryStatus
applyThemeDigitalDeliveryStatus(view: ThemeDigitalDeliveryView, status: ThemeDigitalDeliveryStatus): ThemeDigitalDeliveryView
createThemeDigitalDeliveryProductView
createThemeDigitalDeliveryProductView(view: ThemeDigitalDeliveryView): ThemeDigitalDeliveryProductView
createThemeDigitalDeliveryView
createThemeDigitalDeliveryView(data: unknown): ThemeDigitalDeliveryView
fetchThemeDigitalDeliveryStatus
fetchThemeDigitalDeliveryStatus(input: { entitlementId: string; previousRemaining: number | null; }): Promise<ThemeDigitalDeliveryStatus>
isThemeDigitalDeliveryButtonNativeDisabled
isThemeDigitalDeliveryButtonNativeDisabled(value: unknown): boolean
isThemeDigitalDeliveryDownloadLink
isThemeDigitalDeliveryDownloadLink(value: unknown): boolean
startThemeDigitalDeliveryDownload
startThemeDigitalDeliveryDownload(input: { entitlementId: string; }): Promise<void>
ThemeDigitalDeliveryAction
type ThemeDigitalDeliveryAction = {
view: ThemeDigitalDeliveryView;
busy: boolean;
button: {
disabled: boolean;
nativeDisabled: boolean;
};
download: () => Promise<void>;
};
ThemeDigitalDeliveryProductView
type ThemeDigitalDeliveryProductView = {
id: string;
title: string;
description: string | null;
images: string[];
thumbnail: string | null;
fulfillmentKind: 'DIGITAL';
metadata: {
digitalDeliveryMediaPlaceholder: true;
};
};
ThemeDigitalDeliveryStatus
type ThemeDigitalDeliveryStatus = {
success: boolean;
changed: boolean;
remainingDownloads: number | null;
remainingLabel: string;
canDownload: boolean;
buttonLabel: string;
statusMessage: string;
claimToken?: string | null;
};
ThemeDigitalDeliveryView
type ThemeDigitalDeliveryView = {
entitlementId: string;
productTitle: string;
productDescription: string | null;
productImageUrl: string | null;
productImageUrls: string[];
filename: string;
remainingDownloads: number | null;
remainingLabel: string;
expiresAt: string | null;
expiryLabel: string;
canDownload: boolean;
title: string;
buttonLabel: string;
statusMessage: string;
error: string | null;
errorCode: string | null;
preview: boolean;
};
useThemeDigitalDelivery
useThemeDigitalDelivery(initialView: ThemeDigitalDeliveryView): ThemeDigitalDeliveryAction