feat: some fixes
This commit is contained in:
@@ -49,11 +49,11 @@ export default function NewPlacementPage() {
|
||||
const router = useRouter();
|
||||
const searchParams = useSearchParams();
|
||||
const workspaceId = params?.workspaceId as string;
|
||||
const { currentProject } = useWorkspace();
|
||||
const { currentProject, setSelectedProjects, projects } = useWorkspace();
|
||||
|
||||
// Pre-filled from URL params
|
||||
const prefilledCreativeId = searchParams.get("creative_id");
|
||||
const prefilledChannelId = searchParams.get("channel_id");
|
||||
const prefilledCreativeId = searchParams.get("creative_id");
|
||||
|
||||
// Form state
|
||||
const [channelId, setChannelId] = useState(prefilledChannelId || "");
|
||||
@@ -73,10 +73,26 @@ export default function NewPlacementPage() {
|
||||
const [isSubmitting, setIsSubmitting] = useState(false);
|
||||
const [error, setError] = useState<string | null>(null);
|
||||
|
||||
// Auto-select project when creative_id is provided
|
||||
useEffect(() => {
|
||||
loadData();
|
||||
}, [workspaceId, currentProject?.id]);
|
||||
if (!prefilledCreativeId || projects.length === 0) return;
|
||||
|
||||
const loadCreativeAndSelectProject = async () => {
|
||||
try {
|
||||
const creative = await creativesApi.get(workspaceId, prefilledCreativeId);
|
||||
const project = projects.find(p => p.id === creative.project_id);
|
||||
if (project) {
|
||||
setSelectedProjects([project]);
|
||||
}
|
||||
} catch (err) {
|
||||
console.error("Failed to load creative:", err);
|
||||
}
|
||||
};
|
||||
|
||||
loadCreativeAndSelectProject();
|
||||
}, [prefilledCreativeId, projects, workspaceId, setSelectedProjects]);
|
||||
|
||||
// Load channels and creatives
|
||||
const loadData = async () => {
|
||||
try {
|
||||
setLoadingData(true);
|
||||
@@ -101,6 +117,10 @@ export default function NewPlacementPage() {
|
||||
}
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
loadData();
|
||||
}, [workspaceId, currentProject?.id]);
|
||||
|
||||
const handleSubmit = async (e: React.FormEvent) => {
|
||||
e.preventDefault();
|
||||
|
||||
@@ -129,7 +149,8 @@ export default function NewPlacementPage() {
|
||||
invite_link_type: inviteLinkType,
|
||||
});
|
||||
|
||||
router.push(`/dashboard/${workspaceId}/placements/${placement.id}`);
|
||||
// Redirect to placements list with project filter
|
||||
router.push(`/dashboard/${workspaceId}/placements?project_id=${currentProject.id}`);
|
||||
} catch (err: any) {
|
||||
setError(err?.detail || "Не удалось создать размещение");
|
||||
} finally {
|
||||
|
||||
Reference in New Issue
Block a user