Files
KVideo/components/premium/PremiumContent.tsx
T

77 lines
2.2 KiB
TypeScript

'use client';
import { TagManager } from '@/components/home/TagManager';
import { PremiumContentGrid } from './PremiumContentGrid';
import { usePremiumTagManager } from '@/lib/hooks/usePremiumTagManager';
import { usePremiumContent } from '@/lib/hooks/usePremiumContent';
interface PremiumContentProps {
onSearch?: (query: string) => void;
}
export function PremiumContent({ onSearch }: PremiumContentProps) {
const {
tags,
selectedTag,
newTagInput,
showTagManager,
justAddedTag,
setSelectedTag,
setNewTagInput,
setShowTagManager,
setJustAddedTag,
handleAddTag,
handleDeleteTag,
handleRestoreDefaults,
handleDragEnd,
} = usePremiumTagManager();
// Get the category value from selected tag
const categoryValue = tags.find(t => t.id === selectedTag)?.value || '';
const {
videos,
loading,
hasMore,
prefetchRef,
loadMoreRef,
} = usePremiumContent(categoryValue);
const handleVideoClick = (video: any) => {
if (onSearch) {
onSearch(video.vod_name);
}
};
return (
<div className="animate-fade-in">
<TagManager
tags={tags}
selectedTag={selectedTag}
showTagManager={showTagManager}
newTagInput={newTagInput}
justAddedTag={justAddedTag}
onTagSelect={(tagId) => {
setSelectedTag(tagId);
}}
onTagDelete={handleDeleteTag}
onToggleManager={() => setShowTagManager(!showTagManager)}
onRestoreDefaults={handleRestoreDefaults}
onNewTagInputChange={setNewTagInput}
onAddTag={handleAddTag}
onDragEnd={handleDragEnd}
onJustAddedTagHandled={() => setJustAddedTag(false)}
/>
<PremiumContentGrid
videos={videos}
loading={loading}
hasMore={hasMore}
onVideoClick={handleVideoClick}
prefetchRef={prefetchRef}
loadMoreRef={loadMoreRef}
/>
</div>
);
}