38 lines
1.1 KiB
JavaScript
38 lines
1.1 KiB
JavaScript
import axios from 'axios';
|
|
import { toast } from 'sonner';
|
|
import { route } from 'ziggy-js';
|
|
import { create } from 'zustand';
|
|
|
|
const useAdminVideoTimelineStore = create((set) => ({
|
|
videoTimelines: [],
|
|
isLoadingVideoTimelines: false,
|
|
|
|
getVideoTimelines: async (uuid) => {
|
|
try {
|
|
set({ isLoadingVideoTimelines: true });
|
|
|
|
const response = await axios.get(route('render.elements.get', { uuid }));
|
|
|
|
// Just set the elements directly without any mapping
|
|
set({
|
|
videoTimelines: response.data.success.data.video_elements || [],
|
|
isLoadingVideoTimelines: false,
|
|
});
|
|
|
|
return response.data.success.data.video_elements || [];
|
|
} catch (error) {
|
|
set({ isLoadingVideoTimelines: false });
|
|
|
|
if (axios.isAxiosError(error) && error.response?.data?.error?.message) {
|
|
toast(error.response.data.error.message);
|
|
} else {
|
|
toast('Failed to load video timeline');
|
|
}
|
|
|
|
return [];
|
|
}
|
|
},
|
|
}));
|
|
|
|
export default useAdminVideoTimelineStore;
|