1"use strict";(globalThis.webpackChunktrafficalerts=globalThis.webpackChunktrafficalerts||[]).push([[7464],{4189(t,e,a){a.d(e,{T:()=>n});var r=a(7981),s=a(5012);async function n(t){const e=String(t||"").trim();if(!e)return;let a=null;try{a=(0,s.Z)()}catch{a=null}const n="undefined"!==typeof navigator&&"string"===typeof navigator.userAgent?navigator.userAgent:null,{error:i}=await r.N.rpc("increment_alert_view",{p_alert_id:e,p_visitor_key:a,p_user_agent:n});if(i)throw i}},7464(t,e,a){a.d(e,{B8:()=>b,Bc:()=>T,GP:()=>C,Hj:()=>E,Hu:()=>A,Jw:()=>h,Lw:()=>R,O$:()=>Q,PS:()=>I,Ug:()=>O,bQ:()=>K,dZ:()=>F,iP:()=>N,ih:()=>L,jt:()=>k,kf:()=>q,uA:()=>M,uI:()=>j,ww:()=>D,y6:()=>P});var r=a(3248),s=a(7097),n=a(7981),i=a(4189),o=a(5054),l=a(8018),u=a(5889),c=a(9749),d=a(3482),_=a(3329);const p=["ta_notify_prestart_24h","ta_schedules","ta_source_url","province_ids","applies_to_all_provinces","media_urls","google_maps_link","video_poster_url"];async function m(t){return(0,o.PY)(t)}function f(t){t.invalidateQueries({queryKey:["alerts"]})}function v(t,e){t.setQueryData(["alert",String(e.id)],e),function(t,e){t.invalidateQueries({queryKey:["alert-seo",String(e.id)]}),e.public_id&&t.invalidateQueries({queryKey:["alert-seo",e.public_id]})}(t,e),e.public_id&&t.setQueryData(["alert",e.public_id],e),w(t,String(e.id),()=>e),f(t),function(t){t.invalidateQueries({queryKey:["alert-summary-stats"]})}(t)}function y(t){return[...t.getQueriesData({queryKey:["alerts"]}),...t.getQueriesData({queryKey:["timeline"]})]}function w(t,e,a){const r=y(t);return r.forEach(r=>{let[s,n]=r;if(!n)return;const i=n.items.map(t=>String(t.id)===String(e)?a(t):t);t.setQueryData(s,{...n,items:i})}),r}function S(t,e){y(t).forEach(a=>{let[r,s]=a;if(!s)return;const n=s.items.filter(t=>String(t.id)!==String(e));var i;n.length!==s.items.length&&t.setQueryData(r,{...s,items:n,total:Math.max(0,(null!==(i=s.total)&&void 0!==i?i:s.items.length)-1)})})}function g(t,e){e&&e.forEach(e=>{let[a,r]=e;t.setQueryData(a,r)})}function h(t){const e=(0,r.jE)();return(0,s.n)({mutationFn:async t=>{var e,a,r,s,i,o;const p=null===(e=(await n.N.auth.getUser()).data.user)||void 0===e?void 0:e.id;if(!p)throw new Error(d.UU.ALERT_CREATE_NOT_SIGNED_IN);const{data:f,error:v}=await n.N.from("profiles").select("role, phone_verified, status, suspended_until, posting_enabled").eq("id",p).maybeSingle();if(v)throw l.v.error("[useCreateAlertMutation] Profile fetch failed:",v),new Error(d.UU.ALERT_CREATE_FAILED);const y=(0,c.x)(null===f||void 0===f?void 0:f.role),w=(0,c.n)(f,{isModerationStaff:y});if(w)throw new Error(w);const S="ADVISORY"===String(null!==(a=t.kind)&&void 0!==a?a:"").toUpperCase()||"ADVISORY"===String(null!==(r=null===(s=t.meta)||void 0===s?void 0:s.kind)&&void 0!==r?r:"").toUpperCase(),g=S?void 0:(0,u.mN)(t.authorities_on_scene),h=t.meta&&"object"===typeof t.meta?{...t.meta}:{},E=String(null!==(i=t.location_name)&&void 0!==i?i:"").trim(),D={title:t.title,description:t.content,province_id:t.province,main_route:E,category_id:t.alert_type,meta:{...h,...E?{location_name:E}:{}},location_lat:t.location_lat,location_lng:t.location_lng,submitter_id:p};if(!S&&g&&(D.authorities_on_scene=g,D.meta.authorities_on_scene=g),D.workflow_status="published",D.status="active",t.kind&&(D.kind=t.kind,t.meta)){var A,Q;const e=(Array.isArray(t.meta.ta_schedules)?t.meta.ta_schedules:[]).filter(t=>Boolean(null===t||void 0===t?void 0:t.starts_at)).filter(t=>!Boolean((null===t||void 0===t?void 0:t.ends_at)&&String(t.ends_at).trim())||Date.parse(String(t.ends_at))>Date.parse(String(t.starts_at))).slice().sort((t,e)=>Date.parse(String(t.starts_at))-Date.parse(String(e.starts_at))),a=e.some(t=>!(null!==t&&void 0!==t&&t.ends_at)||""===String(t.ends_at).trim());D.ta_start_at=null!==(A=null===(Q=e[0])||void 0===Q?void 0:Q.starts_at)&&void 0!==A?A:t.meta.ta_start_at,D.ta_end_at=a?null:e.length>0?e.reduce((t,e)=>{const a=String(e.ends_at);return Date.parse(a)>Date.parse(String(t))?a:t},String(e[0].ends_at)):t.meta.ta_end_at,D.ta_priority=t.meta.ta_priority,D.ta_closure_type=t.meta.ta_closure_type,D.ta_roads="string"===typeof t.meta.ta_roads?t.meta.ta_roads.split(",").map(t=>
1t.trim()).filter(Boolean):t.meta.ta_roads,D.ta_detour_info=t.meta.ta_detour_info,D.ta_source=t.meta.ta_source||"USER",D.ta_official=t.meta.ta_official||!1,D.ta_reschedule_history=t.meta.ta_reschedule_history||[];const r=new Date,s=D.ta_start_at?new Date(D.ta_start_at):null,n=D.ta_end_at?new Date(D.ta_end_at):null;D.ta_status=n&&n<=r?"ENDED":s&&s<=r?"ACTIVE":"SCHEDULED"}const{data:N,error:b}=await n.N.from("alerts").insert(D).select("id").maybeSingle();if(b)throw l.v.error("[CREATE_ALERT] PostgREST error:",b),new Error((0,_.FT)(b,f,{isModerationStaff:y}));if(null===N||void 0===N||!N.id)throw l.v.error("[CREATE_ALERT] Insert returned no row (trigger/RLS may have blocked silently)",{uid:p,workflow_status:D.workflow_status,status:D.status}),new Error((0,_.FT)(null,f,{isModerationStaff:y,noRowReturned:!0}));if("ADVISORY"===t.kind&&t.meta&&Array.isArray(t.meta.ta_schedules)){const e=t.meta.ta_schedules;try{await n.N.rpc("replace_advisory_schedules",{p_alert_id:N.id,p_schedules:e})}catch(j){l.v.error("[CREATE_ALERT] Failed to persist advisory schedules",j)}}if(null!==(o=t.meta)&&void 0!==o&&o.media_urls){let e=[];try{if("string"===typeof t.meta.media_urls){const a=t.meta.media_urls.trim();e=a.startsWith("[")&&a.endsWith("]")?JSON.parse(a):[a]}else Array.isArray(t.meta.media_urls)&&(e=t.meta.media_urls)}catch(C){l.v.error("Failed to parse media_urls:",C,{raw:t.meta.media_urls}),"string"===typeof t.meta.media_urls&&t.meta.media_urls.length>5&&(e=[t.meta.media_urls])}if(e.length>0){const t=e.filter(t=>"string"===typeof t&&t.length>0),a=new RegExp("/object/public/alert-media/(.+)$"),r=t.map((t,e)=>{const r=t.match(a),s=r?r[1]:t,n=null===s||void 0===s?void 0:s.toLowerCase().match(/\.(mp4|mov|avi|wmv|flv|webm)$/i);return{alert_id:N.id,storage_path:s,media_type:n?"video":"image",sort_order:e}}),s=t.map(t=>{const e=t.match(a),r=e?e[1]:t,s=null===r||void 0===r?void 0:r.toLowerCase().match(/\.(mp4|mov|avi|wmv|flv|webm)$/i);return{alert_id:N.id,storage_path:r,media_type:s?"video":"image"}});if(r.length>0){let t=null;if(({error:t}=await n.N.from("alert_media").insert(r)),t){var q,k;const e=String(null!==(q=null===(k=t)||void 0===k?void 0:k.message)&&void 0!==q?q:"");if(e.toLowerCase().includes("sort_order")||e.toLowerCase().includes("column")){const t=await n.N.from("alert_media").insert(s);t.error&&l.v.error("Failed to link media to alert (retry without sort_order failed):",t.error)}else l.v.error("Failed to link media to alert:",t)}}}}return m(N.id)},onSuccess:t=>{v(e,t)},onSettled:()=>{t&&e.invalidateQueries({queryKey:["alerts",t]})}})}function E(){const t=(0,r.jE)();return(0,s.n)({mutationFn:async t=>{const{data:e}=await n.N.from("alerts").select("kind").eq("id",t).single(),a={workflow_status:"published",status:"resolved"};return"ADVISORY"===(null===e||void 0===e?void 0:e.kind)&&(a.ta_status="ENDED"),await n.N.from("alerts").update(a).eq("id",t),m(t)},onMutate:async e=>{const a=String(e),r=["alert",a];await t.cancelQueries({queryKey:r});const s=t.getQueryData(r),n=t=>({...t,status:"resolved",workflowStatus:"published",isPending:!1});s&&t.setQueryData(r,n(s));return{previousAlert:s,listSnapshots:w(t,a,n)}},onError:(e,a,r)=>{const s=String(a);null!==r&&void 0!==r&&r.previousAlert&&t.setQueryData(["alert",s],r.previousAlert),g(t,null===r||void 0===r?void 0:r.listSnapshots)},onSuccess:e=>{v(t,e),t.invalidateQueries({queryKey:["timeline"]}),t.invalidateQueries({queryKey:["ops-stale-alerts-list"]}),t.invalidateQueries({queryKey:["ops-stale-alerts-count"]}),t.invalidateQueries({queryKey:["ops-command-center-stats"]}),t.invalidateQueries({queryKey:["alert-stale-review-status",e.id]})}})}function D(){const t=(0,r.jE)();return(0,s.n)({mutationFn:async t=>(await n.N.from("alerts").update({ta_status:"CANCELLED",status:"cancelled",workflow_status:"published"}).eq("id",t),m(t)),onMutate:async e=>{const a=String(e),r=["alert",a];await t.cancelQueries({queryKey:r});const s=t.getQueryData(r),n=t=>({...t,status:"cancelled",workflowStatus:"published",ta_status:"CANCELLED",isPending:!1});s&&t.setQueryData(r,n(s));return{previousAlert:s,listSnapshots:w(t,a,n)}},onError:(e,a,r)=>{const s=String(a);null!==r&&void 0!==r&&r.previousAlert&&t.setQueryData(["alert",s],r.previousAlert),g(t,null===r||void 0===r?void 0:r.listSnapshots)},onSuccess:e=>{v(t,e),t.invalidateQueries({queryKey:["timeline"]})}})}function A(){const t=(0,r.jE)();return(0,s.n)({mutationFn:async t=>{var e;let{alertId:a,trafficImpact:r}=t;const{data:s}=await n.N.from("alerts").select("meta").eq("id",a).single(),i={...null!==(e=null===s||void 0===s?void 0:s.meta)&&void 0!==e?e:{},traffic_impact:r};return await n.N.from("alerts").update({meta:i}).eq("id",a),m(a)},onMutate:async e=>{let{alertId:a,trafficImpact:r}=e;const s=String(a),n=["alert",s];await t.cancelQueries({queryKey:n});const i=t.getQueryData(n),o=t=>({...t,traffic_impact:r,meta:{...t.meta,traffic_impact:r}});i&&t.setQueryData(n,o(i));return{previousAlert:i,listSnapshots:w(t,s,o)}},onError:(e,a,r)=>{let{alertId:s}=a;const n=String(s);null!==r&&void 0!==r&&r.previousAlert&&t.setQueryData(["alert",n],r.previousAlert),g(t,null===r||void 0===r?void 0:r.listSnapshots)},onSuccess:e=>{v(t,e)}})}function Q(){const t=(0,r.jE)();return(0,s.n)({mutationFn:async t=>{const{data:e}=await n.N.from("alerts").select("kind, ta_start_at, ta_end_at").eq("id",t).single(),a={workflow_status:"published",status:"active"};if("ADVISORY"===(null===e||void 0===e?void 0:e.kind)){const t=new Date,r=e.ta_start_at?new Date(e.ta_start_at):null,s=e.ta_end_at?new Date(e.ta_end_at):null;a.ta_status=s&&s<=t?"ENDED":r&&r<=t?"ACTIVE":"SCHEDULED"}return await n.N.from("alerts").update(a).eq("id",t),m(t)},onMutate:async e=>{const a=String(e),r=["alert",a];await t.cancelQueries({queryKey:r});const s=t.getQueryData(r),n=t=>({...t,status:"published",workflowStatus:"published",isPending:!1});s&&t.setQueryData(r,n(s));return{previousAlert:s,listSnapshots:w(t,a,n)}},onError:(e,a,r)=>{const s=String(a);null!==r&&void 0!==r&&r.previousAlert&&t.setQueryData(["alert",s],r.previousAlert),g(t,null===r||void 0===r?void 0:r.listSnapshots)},onSuccess:e=>{v(t,e)}})}function N(){const t=(0,r.jE)();return(0,s.n)({mutationFn:async t=>{var e;const{data:a,error:r}=await n.N.from("alerts").select("meta").eq("id",t).single();if(r)throw r;const s={...null!==(e=null===a||void 0===a?void 0:a.meta)&&void 0!==e?e:{},verified:!0};return await n.N.from("alerts").update({meta:s}).eq("id",t),m(t)},onSuccess:e=>{v(t,e)}})}function b(){const t=(0,r.jE)();return(0,s.n)({mutationFn:async t=>{const{error:e}=await n.N.rpc("moderation_set_alert_hidden",{p_alert_id:t,p_hidden:!0});if(e)throw e;return m(t)},onMutate:async e=>{const a=String(e),r=["alert",a];await t.cancelQueries({queryKey:r});const s=t.getQueryData(r),n=t=>({...t,is_hidden:!0,workflowStatus:"hidden"});s&&t.setQueryData(r,n(s));return{previousAlert:s,listSnapshots:w(t,a,n)}},onError:(e,a,r)=>{const s=String(a);null!==r&&void 0!==r&&r.previousAlert&&t.setQueryData(["alert",s],r.previousAlert),g(t,null===r||void 0===r?void 0:r.listSnapshots)},onSuccess:e=>{v(t,e)}})}function q(){const t=(0,r.jE)();return(0,s.n)({mutationFn:async t=>{const{error:e}=await n.N.rpc("moderation_set_alert_hidden",{p_alert_id:t,p_hidden:!1});if(e)throw e;return m(t)},onMutate:async e=>{const a=String(e),r=["alert",a];await t.cancelQueries({queryKey:r});const s=t.getQueryData(r),n=t=>({...t,is_hidden:!1,workflowStatus:"published"});s&&t.setQueryData(r,n(s));return{previousAlert:s,listSnapshots:w(t,a,n)}},onError:(e,a,r)=>{const s=String(a);null!==r&&void 0!==r&&r.previousAlert&&t.setQueryData(["alert",s],r.previousAlert),g(t,null===r||void 0===r?void 0:r.listSnapshots)},onSuccess:e=>{v(t,e)}})}function k(){const t=(0,r.jE)();return(0,s.n)({mutationFn:async t=>{var e;const{data:a,error:r}=await n.N.rpc("admin_poster_action_from_alert",{p_alert_id:t.alertId,p_action:t.action,p_note:null!==(e=t.note)&&void 0!==e?e:null});if(r)throw r;return a},onSuccess:(e,a)=>{t.invalidateQueries({queryKey:["alerts"]}),t.invalidateQueries({queryKey:["alert",String(a.alertId)]}),t.invalidateQueries({queryKey:["users"]})}})}function j(){const t=(0,r.jE)();return(0,s.n)({mutationFn:async t=>{var e;const a=(null!==(e=t.reason)&&void 0!==e?e:"").trim(),{data:r,error:s}=await n.N.from("alerts").select("meta").eq("id",t.id).maybeSingle();if(s)throw s;const i={...null!==r&&void 0!==r&&r.meta&&"object"===typeof r.meta&&!Array.isArray(r.meta)?r.meta:{},rejection_reason:a},{error:o}=await n.N.from("alerts").update({workflow_status:"rejected",status:"false_alarm",meta:i}).eq("id",t.id);if(o)throw o;return m(t.id)},onMutate:async e=>{const a=String(e.id),r=["alert",a];await t.cancelQueries({queryKey:r});const s=t.getQueryData(r),n=y(t);var i;(S(t,a),s)&&t.setQueryData(r,{...s,status:"rejected",workflowStatus:"rejected",isPending:!1,meta:{...s.meta,rejection_reason:null!==(i=e.reason)&&void 0!==i?i:""}});return{previousAlert:s,listSnapshots:n}},onError:(e,a,r)=>{const s=String(a.id);null!==r&&void 0!==r&&r.previousAlert&&t.setQueryData(["alert",s],r.previousAlert),g(t,null===r||void 0===r?void 0:r.listSnapshots)},onSuccess:e=>{t.setQueryData(["alert",String(e.id)],e),S(t,String(e.id))}})}function C(){const t=(0,r.jE)();return(0,s.n)({mutationFn:async t=>{var e;const a=await n.N.auth.getUser();return await n.N.from("alert_follows").insert({alert_id:t,user_id:null===(e=a.data.user)||void 0===e?void 0:e.id}),m(t)},onMutate:async e=>{const a=String(e),r=["alert",a];await t.cancelQueries({queryKey:r});const s=t.getQueryData(r),n=t=>{var e,a;const r=(null!==(e=null!==(a=t.followCount)&&void 0!==a?a:t.follow_count)&&void 0!==e?e:0)+1;return{...t,followCount:r,follow_count:r,userState:{...t.userState,hasFollowed:!0}}};s&&t.setQueryData(r,n(s));return{previousAlert:s,listSnapshots:w(t,a,n)}},onError:(e,a,r)=>{const s=String(a);null!==r&&void 0!==r&&r.previousAlert&&t.setQueryData(["alert",s],r.previousAlert),g(t,null===r||void 0===r?void 0:r.listSnapshots)},onSuccess:e=>{v(t,e),t.invalidateQueries({queryKey:["timeline"]})}})}function K(){const t=(0,r.jE)();return(0,s.n)({mutationFn:async t=>{var e;const a=await n.N.auth.getUser();return await n.N.from("alert_follows").delete().eq("alert_id",t).eq("user_id",null===(e=a.data.user)||void 0===e?void 0:e.id),m(t)},onMutate:async e=>{const a=String(e),r=["alert",a];await t.cancelQueries({queryKey:r});const s=t.getQueryData(r),n=t=>{var e,a;const r=Math.max(0,(null!==(e=null!==(a=t.followCount)&&void 0!==a?a:t.follow_count)&&void 0!==e?e:0)-1);return{...t,followCount:r,follow_count:r,userState:{...t.userState,hasFollowed:!1}}};s&&t.setQueryData(r,n(s));return{previousAlert:s,listSnapshots:w(t,a,n)}},onError:(e,a,r)=>{const s=String(a);null!==r&&void 0!==r&&r.previousAlert&&t.setQueryData(["alert",s],r.previousAlert),g(t,null===r||void 0===r?void 0:r.listSnapshots)},onSuccess:e=>{v(t,e),t.invalidateQueries({queryKey:["timeline"]})}})}function F(){const t=(0,r.jE)();return(0,s.n)({mutationFn:async t=>(await(0,i.T)(t),m(t)),onMutate:async e=>{const a=String(e),r=["alert",a];await t.cancelQueries({queryKey:r});const s=t.getQueryData(r),n=t=>{var e,a;const r=(null!==(e=null!==(a=t.viewCount)&&void 0!==a?a:t.view_count)&&void 0!==e?e:0)+1;return{...t,viewCount:r,view_count:r}};s&&t.setQueryData(r,n(s));return{previousAlert:s,listSnapshots:w(t,a,n)}},onError:(e,a,r)=>{const s=String(a);null!==r&&void 0!==r&&r.previousAlert&&t.setQueryData(["alert",s],r.previousAlert),g(t,null===r||void 0===r?void 0:r.listSnapshots)},onSuccess:(e,a)=>{v(t,e),t.invalidateQueries({queryKey:["alerts"]})}})}function O(){const t=(0,r.jE)();return(0,s.n)({mutationFn:async t=>(await n.N.from("alerts").update({workflow_status:"published",status:"active"}).eq("id",t),m(t)),onMutate:async e=>{const a=String(e),r=["alert",a];await t.cancelQueries({queryKey:r});const s=t.getQueryData(r),n=t=>({...t,status:"published",workflowStatus:"published",isPending:!1});s&&t.setQueryData(r,n(s));return{previousAlert:s,listSnapshots:w(t,a,n)}},onError:(e,a,r)=>{const s=String(a);null!==r&&void 0!==r&&r.previousAlert&&t.setQueryData(["alert",s],r.previousAlert),g(t,null===r||void 0===r?void 0:r.listSnapshots)},onSuccess:e=>{v(t,e)}})}function L(){const t=(0,r.jE)();return(0,s.n)({mutationFn:async t=>{var e,a;const{id:r,...s}=t,i={...s};let o=null;const u=!0===i._moderationLocked;if(Object.prototype.hasOwnProperty.call(i,"_moderationLocked")&&delete i._moderationLocked,Object.prototype.hasOwnProperty.call(i,"traffic_impact")){const t=i.traffic_impact;delete i.traffic_impact,i.meta=i.meta&&"object"===typeof i.meta?{...i.meta}:{},i.meta.traffic_impact=t}if(i.meta&&"object"===typeof i.meta&&Object.prototype.hasOwnProperty.call(i.meta,"authorities_on_scene")&&!Object.prototype.hasOwnProperty.call(i,"authorities_on_scene")&&(i.authorities_on_scene=i.meta.authorities_on_scene),"content"in i&&(i.description=i.content,delete i.content),"alert_type"in i){const t={Accident:"accident",Breakdown:"breakdown",Protest:"protest","Road Closure":"road-closure","Other Hazard":"hazard","Other / Hazard":"hazard",Roadworks:"roadworks",Weather:"weather","Traffic Lights Out":"traffic-lights-out","Traffic Jam":"traffic-jam",Fire:"fire","Crime / Hijacking":"crime",Flood:"flood","Lost Load / Spillage":"spillage"},e=i.alert_type,a=t[String(e)]||e;i.category_id=a,delete i.alert_type}if("province"in i){const t={"Eastern Cape":"EC","Free State":"FS",Gauteng:"GP","KwaZulu-Natal":"KZN",Limpopo:"LP",Mpumalanga:"MP","Northern Cape":"NC","North West":"NW","Western Cape":"WC"};i.province_id=t[String(i.province)]||i.province,delete i.province}if("location_name"in i){const t=i.location_name;i.main_route=t,i.meta&&"object"===typeof i.meta?i.meta={...i.meta,location_name:t}:i.meta={location_name:t},delete i.location_name}if("ADVISORY"===i.kind||"ADVISORY"===String(null!==(e=null===(a=i.meta)||void 0===a?void 0:a.kind)&&void 0!==e?e:"").toUpperCase()||Object.prototype.hasOwnProperty.call(i,"ta_start_at")||Object.prototype.hasOwnProperty.call(i,"ta_end_at")){const t=i.meta||{};if(Array.isArray(t.ta_schedules)){o=t.ta_schedules;const e=o.filter(t=>{if(!t||"object"!==typeof t||!t.starts_at)return!1;const e=t.ends_at;return null==e||""===String(e).trim()||Date.parse(String(e))>Date.parse(String(t.starts_at))}).slice().sort((t,e)=>Date.parse(String(t.starts_at))-Date.parse(String(e.starts_at)));if(e.length>0){i.ta_start_at=e[0].starts_at;const a=e.some(t=>!(null!==t&&void 0!==t&&t.ends_at)||""===String(t.ends_at).trim());i.ta_end_at=a?null:e.reduce((t,e)=>{const a=String(e.ends_at);return Date.parse(a)>Date.parse(String(t))?a:t},String(e[0].ends_at)),t.ta_start_at=i.ta_start_at,t.ta_end_at=i.ta_end_at}}if(t.ta_start_at&&(i.ta_start_at=t.ta_start_at),t.ta_end_at&&(i.ta_end_at=t.ta_end_at),t.ta_priority&&(i.ta_priority=t.ta_priority),t.ta_closure_type&&(i.ta_closure_type=t.ta_closure_type),t.ta_roads&&(i.ta_roads="string"===typeof t.ta_roads?t.ta_roads.split(",").map(t=>
1t.trim()).filter(Boolean):t.ta_roads),t.ta_detour_info&&(i.ta_detour_info=t.ta_detour_info),t.ta_source&&(i.ta_source=t.ta_source),t.ta_pdf_url&&(i.ta_pdf_url=t.ta_pdf_url),"undefined"!==typeof t.ta_official&&(i.ta_official=t.ta_official),i.meta=t,!u){const e=i.ta_start_at?new Date(i.ta_start_at):null,a=i.ta_end_at?new Date(i.ta_end_at):null;if(e||a){const t=new Date;a&&a<=t?(i.ta_status="ENDED",i.workflow_status="published",i.status="resolved"):e&&e<=t?(i.ta_status="ACTIVE",i.workflow_status="published",i.status="active"):(i.ta_status="SCHEDULED",i.workflow_status="published",i.status="active")}else t.ta_status&&(i.ta_status=t.ta_status)}}!function(t){for(const e of p){if(!Object.prototype.hasOwnProperty.call(t,e))continue;const a=t[e];if(delete t[e],void 0===a)continue;const r=t.meta&&"object"===typeof t.meta&&!Array.isArray(t.meta)?t.meta:{};t.meta={...r,[e]:a}}""===t.province_id&&delete t.province_id,""===t.category_id&&delete t.category_id}(i);const{error:c}=await n.N.from("alerts").update(i).eq("id",r);if(c)throw l.v.error("Supabase update failed (useUpdateAlertMutation)",{id:r,updateData:i,updateError:c}),c;if(o&&o.length>0){const{error:t}=await n.N.rpc("replace_advisory_schedules",{p_alert_id:r,p_schedules:o});if(t)throw l.v.error("[UPDATE_ALERT] Failed to persist advisory schedules",t),t}return m(r)},onSuccess:e=>{v(t,e)}})}function I(){return(0,s.n)({mutationFn:async t=>{var e;const{error:a}=await n.N.rpc("submit_alert_user_report",{p_alert_id:t.id,p_reason:t.reason,p_custom_reason:null!==(e=t.custom_reason)&&void 0!==e?e:null});if(a)throw a;return{success:!0,message:"Reported successfully"}}})}function T(){const t=(0,r.jE)();return(0,s.n)({mutationFn:async t=>{const e=JSON.parse(localStorage.getItem("dismissed_alerts")||"[]");return e.push(t),localStorage.setItem("dismissed_alerts",JSON.stringify(e)),{success:!0}},onSuccess:()=>{f(t)}})}function R(){const t=(0,r.jE)();return(0,s.n)({mutationFn:async t=>{const e=JSON.parse(localStorage.getItem("dismissed_alerts")||"[]").filter(e=>e!==t);return localStorage.setItem("dismissed_alerts",JSON.stringify(e)),{success:!0}},onSuccess:()=>{f(t)}})}function P(){const t=(0,r.jE)();return(0,s.n)({mutationFn:async t=>{const e=JSON.parse(localStorage.getItem("dismissed_alerts")||"[]");return e.push(t),localStorage.setItem("dismissed_alerts",JSON.stringify(e)),{success:!0}},onSuccess:()=>{f(t)}})}function M(){const t=(0,r.jE)();return(0,s.n)({mutationFn:async t=>(l.v.log(`[DELETE] Starting deletion for alert ${t}`),await n.N.from("alerts").delete().eq("id",t),{success:!0,wasHidden:!1,alertId:t}),onMutate:async e=>{const a=String(e);await t.cancelQueries({queryKey:["alert",a]});const r=y(t);return t.removeQueries({queryKey:["alert",a]}),S(t,a),{listSnapshots:r}},onError:(e,a,r)=>{l.v.error(`[DELETE] onError called for alert ${a}:`,e),g(t,null===r||void 0===r?void 0:r.listSnapshots)},onSuccess:(e,a)=>{l.v.log(`[DELETE] onSuccess called for alert ${a}, wasHidden: ${null===e||void 0===e?void 0:e.wasHidden}`),t.removeQueries({queryKey:["alert",a]}),t.invalidateQueries({queryKey:["alerts"]})}})}}}]); 2//# sourceMappingURL=7464.70d5edbb.chunk.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.