diff --git a/frontend/src/services/products/CouponService.tsx b/frontend/src/services/products/CouponService.tsx index ba313308a..3ab3786f2 100644 --- a/frontend/src/services/products/CouponService.tsx +++ b/frontend/src/services/products/CouponService.tsx @@ -1,4 +1,4 @@ -import { CreateCoupon } from "@autumn/shared"; +import { CreateReward } from "@autumn/shared"; import { SupabaseClient } from "@supabase/supabase-js"; import { AxiosInstance } from "axios"; @@ -9,7 +9,7 @@ export class CouponService { data, }: { axiosInstance: AxiosInstance; - data: CreateCoupon; + data: CreateReward; }) { await axiosInstance.post("/v1/coupons", data); } diff --git a/frontend/src/views/customers/customer/CustomerToolbar.tsx b/frontend/src/views/customers/customer/CustomerToolbar.tsx index ee18c3ca6..aee916dc1 100644 --- a/frontend/src/views/customers/customer/CustomerToolbar.tsx +++ b/frontend/src/views/customers/customer/CustomerToolbar.tsx @@ -12,7 +12,7 @@ import { useState } from "react"; import toast from "react-hot-toast"; import { Button } from "@/components/ui/button"; import { useAxiosInstance } from "@/services/useAxiosInstance"; -import { Coupon, Customer } from "@autumn/shared"; +import { Reward, Customer } from "@autumn/shared"; import { useCustomerContext } from "./CustomerContext"; import { CusService } from "@/services/customers/CusService"; import { useRouter } from "next/navigation"; @@ -76,7 +76,7 @@ export const CustomerToolbar = ({ }} >
-

Add Coupon

+

Add Reward

diff --git a/frontend/src/views/customers/customer/add-coupon/AddCouponDialogContent.tsx b/frontend/src/views/customers/customer/add-coupon/AddCouponDialogContent.tsx index f249f2cb2..49a98fd0a 100644 --- a/frontend/src/views/customers/customer/add-coupon/AddCouponDialogContent.tsx +++ b/frontend/src/views/customers/customer/add-coupon/AddCouponDialogContent.tsx @@ -2,7 +2,7 @@ import { SelectContent } from "@/components/ui/select"; import { SelectValue } from "@/components/ui/select"; import { SelectTrigger } from "@/components/ui/select"; import { DialogFooter } from "@/components/ui/dialog"; -import { Coupon } from "@autumn/shared"; +import { Reward } from "@autumn/shared"; import { Select, SelectItem } from "@/components/ui/select"; import { Dialog, @@ -22,28 +22,28 @@ const AddCouponDialogContent = ({ setOpen: (open: boolean) => void; }) => { const { coupons } = useCustomerContext(); - const [couponSelected, setCouponSelected] = useState(null); + const [couponSelected, setCouponSelected] = useState(null); const handleAddClicked = async () => {}; return ( - Add Coupon + Add Reward
{ - const coupon = coupons.find((c: Coupon) => c.internal_id === value); + const coupon = coupons.find((c: Reward) => c.internal_id === value); if (coupon) { setCouponSelected(coupon); } }} > - + {/* If empty */} {coupons && coupons.length > 0 ? ( - coupons.map((coupon: Coupon) => ( + coupons.map((coupon: Reward) => ( {coupon.name} @@ -104,7 +104,7 @@ const AddCouponDialogContent = ({ disabled={!couponSelected} isLoading={loading} > - Add Coupon + Add Reward diff --git a/vite/src/views/products/ProductsView.tsx b/vite/src/views/products/ProductsView.tsx index 719224ece..fe30e91ad 100644 --- a/vite/src/views/products/ProductsView.tsx +++ b/vite/src/views/products/ProductsView.tsx @@ -8,19 +8,19 @@ import { ProductsContext } from "./ProductsContext"; import { AppEnv } from "@autumn/shared"; import CreateProduct from "./CreateProduct"; import { ProductsTable } from "./ProductsTable"; -import { CouponsTable } from "./coupons/CouponsTable"; -import CreateCoupon from "./coupons/CreateCoupon"; import { ToggleDisplayButton } from "@/components/general/ToggleDisplayButton"; import { Ticket } from "lucide-react"; import React from "react"; -import CreateRewardTrigger from "./reward-triggers/CreateRewardTriger"; + import { RewardTriggersTable } from "./reward-triggers/RewardTriggersTable"; import CreateRewardTriggerModal from "./reward-triggers/CreateRewardTriger"; +import { RewardsTable } from "./rewards/RewardsTAble"; +import CreateReward from "./rewards/CreateReward"; function ProductsView({ env }: { env: AppEnv }) { const [selectedProduct, setSelectedProduct] = useState(null); - const [showCoupons, setShowCoupons] = useState(false); + const [showRewards, setShowRewards] = useState(false); const { data, isLoading, mutate } = useAxiosSWR({ url: `/products/data`, env: env, @@ -38,8 +38,8 @@ function ProductsView({ env }: { env: AppEnv }) { setSelectedProduct(data.products[0]); } - if (data?.coupons.length > 0) { - setShowCoupons(true); + if (data?.rewards.length > 0) { + setShowRewards(true); } }, [data]); @@ -65,9 +65,9 @@ function ProductsView({ env }: { env: AppEnv }) {

0} - onClick={() => setShowCoupons((prev) => !prev)} + show={showRewards} + disabled={data?.rewards.length > 0} + onClick={() => setShowRewards((prev) => !prev)} > Coupons @@ -75,7 +75,7 @@ function ProductsView({ env }: { env: AppEnv }) { - {showCoupons && ( + {showRewards && (
@@ -86,8 +86,8 @@ function ProductsView({ env }: { env: AppEnv }) { {/* (eg, 10% off all products). */}

- - + +
diff --git a/vite/src/views/products/reward-triggers/CreateRewardTriger.tsx b/vite/src/views/products/reward-triggers/CreateRewardTriger.tsx index a22ea11df..f9603b1e5 100644 --- a/vite/src/views/products/reward-triggers/CreateRewardTriger.tsx +++ b/vite/src/views/products/reward-triggers/CreateRewardTriger.tsx @@ -19,9 +19,9 @@ import { useAxiosInstance } from "@/services/useAxiosInstance"; import { toast } from "sonner"; import { PlusIcon } from "lucide-react"; import { - Coupon, + Reward, CouponDurationType, - CreateCoupon as CreateCouponType, + CreateReward as CreateCouponType, DiscountType, RewardTrigger, RewardTriggerEvent, diff --git a/vite/src/views/products/reward-triggers/RewardTriggerConfig.tsx b/vite/src/views/products/reward-triggers/RewardTriggerConfig.tsx index 23d7945f5..334bb3d5a 100644 --- a/vite/src/views/products/reward-triggers/RewardTriggerConfig.tsx +++ b/vite/src/views/products/reward-triggers/RewardTriggerConfig.tsx @@ -7,7 +7,7 @@ import { SelectItem, SelectValue, } from "@/components/ui/select"; -import { RewardTrigger, Coupon, RewardTriggerEvent } from "@autumn/shared"; +import { RewardTrigger, Reward, RewardTriggerEvent } from "@autumn/shared"; import { useProductsContext } from "../ProductsContext"; import { keyToTitle } from "@/utils/formatUtils/formatTextUtils"; import { useState } from "react"; @@ -50,7 +50,7 @@ export const RewardTriggerConfig = ({ />
- Coupon + Reward setCoupon({ ...coupon, name: e.target.value })} + value={reward.name || ""} + onChange={(e) => setReward({ ...reward, name: e.target.value })} />
@@ -55,11 +49,11 @@ export const CouponConfig = ({ 0 ? coupon.promo_codes[0].code : "" + reward.promo_codes.length > 0 ? reward.promo_codes[0].code : "" } onChange={(e) => - setCoupon({ - ...coupon, + setReward({ + ...reward, promo_codes: [{ code: e.target.value }], }) } @@ -70,9 +64,9 @@ export const CouponConfig = ({
Discount Type - setCoupon({ ...coupon, discount_value: Number(e.target.value) }) + setReward({ ...reward, discount_value: Number(e.target.value) }) } endContent={

- {coupon.discount_type === DiscountType.Percentage + {reward.discount_type === DiscountType.Percentage ? "%" : org?.currency || "USD"}

@@ -108,13 +102,13 @@ export const CouponConfig = ({
Duration
- {coupon.duration_type === CouponDurationType.Months && ( + {reward.duration_type === CouponDurationType.Months && ( { - setCoupon({ - ...coupon, + setReward({ + ...reward, duration_value: Number(e.target.value), }); }} @@ -122,10 +116,10 @@ export const CouponConfig = ({ /> )}