Path: blob/main/components/dashboard/src/onboarding/VideoSection.tsx
2500 views
/**1* Copyright (c) 2024 Gitpod GmbH. All rights reserved.2* Licensed under the GNU Affero General Public License (AGPL).3* See License.AGPL.txt in the project root for license information.4*/56import { MuxPlayerProps } from "@mux/mux-player-react";7import { cn } from "@podkit/lib/cn";8import { SkeletonBlock } from "@podkit/loading/Skeleton";9import { lazy, Suspense, FC } from "react";1011const MuxPlayer = lazy(() => import("@mux/mux-player-react"));1213type Props = {14playbackId: string;15metadataVideoTitle: string;16poster?: string;17className?: string;18playerProps?: MuxPlayerProps;19};20export const VideoSection: FC<Props> = ({ playbackId, metadataVideoTitle, poster, className, playerProps }) => (21<div22className={cn(23"flex w-full flex-col items-start justify-start overflow-hidden rounded-md drop-shadow-xl",24className,25)}26>27<Suspense fallback={<SkeletonBlock ready={false} className="max-h-[300px] w-full" />}>28<MuxPlayer29aria-label={"Video: " + metadataVideoTitle}30streamType="on-demand"31playbackId={playbackId}32metadataVideoTitle={metadataVideoTitle}33primaryColor="#FFFFFF"34secondaryColor="#000000"35accentColor="#FF8A00"36defaultHiddenCaptions={playerProps?.defaultHiddenCaptions ?? true}37poster={poster}38style={{39aspectRatio: "16 / 9",40backgroundColor: "var(--surface-tertiary)",41borderRadius: "6px",42}}43preload={"metadata"}44disableCookies45disableTracking46{...playerProps}47/>48</Suspense>49</div>50);515253