Upload beautify
This commit is contained in:
18
resources/js/lib/feedAnalytics.js
Normal file
18
resources/js/lib/feedAnalytics.js
Normal file
@@ -0,0 +1,18 @@
|
||||
export function sendFeedAnalyticsEvent(payload) {
|
||||
const endpoint = '/api/analytics/feed'
|
||||
const body = JSON.stringify(payload)
|
||||
|
||||
if (typeof navigator !== 'undefined' && typeof navigator.sendBeacon === 'function') {
|
||||
const blob = new Blob([body], { type: 'application/json' })
|
||||
navigator.sendBeacon(endpoint, blob)
|
||||
return
|
||||
}
|
||||
|
||||
fetch(endpoint, {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body,
|
||||
keepalive: true,
|
||||
}).catch(() => {
|
||||
})
|
||||
}
|
||||
24
resources/js/lib/uploadAnalytics.js
Normal file
24
resources/js/lib/uploadAnalytics.js
Normal file
@@ -0,0 +1,24 @@
|
||||
export function emitUploadEvent(eventName, payload = {}) {
|
||||
try {
|
||||
if (typeof window !== 'undefined') {
|
||||
window.dispatchEvent(
|
||||
new CustomEvent('skinbase:upload-analytics', {
|
||||
detail: {
|
||||
event: eventName,
|
||||
payload,
|
||||
timestamp: Date.now(),
|
||||
},
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
const endpoint = typeof window !== 'undefined' ? window?.SKINBASE_UPLOAD_ANALYTICS_URL : null
|
||||
if (endpoint && typeof navigator !== 'undefined' && typeof navigator.sendBeacon === 'function') {
|
||||
const body = JSON.stringify({ event: eventName, payload, ts: Date.now() })
|
||||
const blob = new Blob([body], { type: 'application/json' })
|
||||
navigator.sendBeacon(endpoint, blob)
|
||||
}
|
||||
} catch {
|
||||
// analytics must remain non-blocking
|
||||
}
|
||||
}
|
||||
23
resources/js/lib/uploadEndpoints.js
Normal file
23
resources/js/lib/uploadEndpoints.js
Normal file
@@ -0,0 +1,23 @@
|
||||
export function init() {
|
||||
return '/api/uploads/init'
|
||||
}
|
||||
|
||||
export function chunk() {
|
||||
return '/api/uploads/chunk'
|
||||
}
|
||||
|
||||
export function finish() {
|
||||
return '/api/uploads/finish'
|
||||
}
|
||||
|
||||
export function status(id) {
|
||||
return `/api/uploads/status/${id}`
|
||||
}
|
||||
|
||||
export function cancel() {
|
||||
return '/api/uploads/cancel'
|
||||
}
|
||||
|
||||
export function publish(id) {
|
||||
return `/api/uploads/${id}/publish`
|
||||
}
|
||||
Reference in New Issue
Block a user