veza/apps/web/dist_verification/assets/useCopyToClipboard-B0J_nZ9-.js
senke 04c25aa24f Phase 2 stabilisation: code mort, Modal→Dialog, feature flags, tests, router split, Rust legacy
Bloc A - Code mort:
- Suppression Studio (components, views, features)
- Suppression gamification + services mock (projectService, storageService, gamificationService)
- Mise à jour Sidebar, Navbar, locales

Bloc B - Frontend:
- Suppression modal.tsx deprecated, Modal.stories (doublon Dialog)
- Feature flags: PLAYLIST_SEARCH, PLAYLIST_RECOMMENDATIONS, ROLE_MANAGEMENT = true
- Suppression 19 tests orphelins, retrait exclusions vitest.config

Bloc C - Backend:
- Extraction routes_auth.go depuis router.go

Bloc D - Rust:
- Suppression security_legacy.rs (code mort, patterns déjà dans security/)
2026-02-14 17:23:32 +01:00

1 line
630 B
JavaScript

import{a}from"./vendor-react-yWUy5XPk.js";function u(r=2e3){const[c,t]=a.useState(!1),i=a.useCallback(async o=>{if(!o||typeof o!="string")return!1;try{if(navigator.clipboard?.writeText)return await navigator.clipboard.writeText(o),t(!0),setTimeout(()=>t(!1),r),!0}catch{}try{const e=document.createElement("textarea");e.value=o,e.setAttribute("readonly",""),e.style.position="fixed",e.style.left="-9999px",e.style.top="0",document.body.appendChild(e),e.select();const n=document.execCommand("copy");if(document.body.removeChild(e),n)return t(!0),setTimeout(()=>t(!1),r),!0}catch{}return!1},[r]);return{copied:c,copy:i}}export{u};