import { jsx, jsxs, Fragment } from "react/jsx-runtime";
import { B as Button } from "./button-CdJZJLGw.js";
import { usePage, Link, router } from "@inertiajs/react";
import "react";
import "@radix-ui/react-slot";
import "class-variance-authority";
import "./utils-DLCPGU0v.js";
import "clsx";
import "tailwind-merge";
const EnabledPlayButton = ({ watchHistory }) => {
  const { props } = usePage();
  const { translate } = props;
  const { frontend } = translate;
  return /* @__PURE__ */ jsx(Button, { size: "lg", className: "w-full", asChild: true, children: /* @__PURE__ */ jsx(
    Link,
    {
      href: route("course.player", {
        type: watchHistory.current_watching_type,
        watch_history: watchHistory.id,
        lesson_id: watchHistory.current_watching_id
      }),
      children: frontend.play_course
    }
  ) });
};
const DisabledPlayButton = ({ course, approvalStatus }) => {
  const { props } = usePage();
  const { translate } = props;
  const { frontend } = translate;
  const approve_able = approvalStatus.approve_able;
  return approve_able ? /* @__PURE__ */ jsx(Button, { size: "lg", className: "w-full", onClick: () => router.post(route("player.init.watch-history"), { course_id: course.id }), children: frontend.play_course }) : /* @__PURE__ */ jsx(Button, { disabled: true, size: "lg", className: "w-full", children: frontend.course_player });
};
const EnrollmentButton = ({ auth, course }) => {
  const { props } = usePage();
  const { translate } = props;
  const { frontend } = translate;
  const enrollmentHandler = (course2) => {
    var _a;
    router.post(route("enrollments.store"), {
      user_id: (_a = auth.user) == null ? void 0 : _a.id,
      course_id: course2.id,
      enrollment_type: "free"
    });
  };
  return course.pricing_type === "free" ? /* @__PURE__ */ jsx(Button, { size: "lg", className: "w-full", onClick: () => enrollmentHandler(course), children: frontend.enroll_now }) : /* @__PURE__ */ jsx("a", { href: route("payments.index", { from: "web", item: "course", id: course.id }), children: /* @__PURE__ */ jsx(Button, { size: "lg", className: "w-full", children: frontend.buy_now }) });
};
const EnrollOrPlayerButton = () => {
  const { auth, course, enrollment, watchHistory, approvalStatus, wishlists, translate } = usePage().props;
  const { frontend } = translate;
  const isEnrolled = !!enrollment;
  const hasWatchHistory = !!watchHistory;
  const isAdminOrInstructor = auth.user && ["admin", "instructor"].includes(auth.user.role);
  const canPlay = hasWatchHistory && (isAdminOrInstructor || isEnrolled);
  const isWishlisted = wishlists.find((wishlist) => wishlist.course_id === course.id);
  const handleWishlist = () => {
    var _a;
    if (isWishlisted) {
      router.delete(route("course-wishlists.destroy", { id: isWishlisted.id }));
    } else {
      router.post(route("course-wishlists.store", { user_id: (_a = auth.user) == null ? void 0 : _a.id, course_id: course.id }));
    }
  };
  if (canPlay) {
    return /* @__PURE__ */ jsx(EnabledPlayButton, { watchHistory });
  } else if (isAdminOrInstructor) {
    return /* @__PURE__ */ jsx(DisabledPlayButton, { course, approvalStatus });
  } else {
    return /* @__PURE__ */ jsxs(Fragment, { children: [
      /* @__PURE__ */ jsx(Button, { className: "w-full px-1 sm:px-3", variant: "outline", size: "lg", onClick: handleWishlist, children: isWishlisted ? frontend.remove_from_wishlist : frontend.add_to_wishlist }),
      /* @__PURE__ */ jsx(EnrollmentButton, { auth, course })
    ] });
  }
};
export {
  EnrollOrPlayerButton as default
};
