Files
ngthanhvu a36e6c77f8 feat: implement cache busting mechanism and UI improvements
- Added `useCacheBust` composable to manage cache invalidation after movie edits in the admin panel.
- Integrated cache busting in movie sync and delete actions to ensure data consistency across pages.
- Enhanced UI components in the admin movie management and member management pages for better readability and usability.
- Introduced a suggestions tab in the movie detail page to recommend similar movies based on categories.
- Updated styles for various elements to improve the overall aesthetic and user experience.
2026-08-05 05:19:34 -04:00

37 lines
1.1 KiB
TypeScript

// Composable để invalidate cached data sau khi edit phim ở admin
const BUST_KEY = 'cinek-cache-version'
function getCacheVersion(): number {
if (!import.meta.client) return 0
return Number(localStorage.getItem(BUST_KEY)) || 0
}
let currentVersion = getCacheVersion()
// Tăng version mỗi lần gọi — dùng để invalidate useFetch cache
export function useCacheBust() {
const version = ref(currentVersion)
function bust() {
if (!import.meta.client) return
currentVersion++
localStorage.setItem(BUST_KEY, String(currentVersion))
version.value = currentVersion
// Dispatch event để các component khác biết cần refresh
window.dispatchEvent(new CustomEvent('cinek:cache-bust', { detail: { version: currentVersion } }))
}
return { version, bust }
}
// Auto-refresh khi có cache bust từ phía admin
export function useAutoRefresh(onDataUpdated?: () => void) {
const { version } = useCacheBust()
watch(version, () => {
onDataUpdated?.()
if (import.meta.client) {
window.dispatchEvent(new CustomEvent('cinek:data-updated'))
}
})
}