{"version":3,"file":"SimpleWebcamComponent.CMG_J2Ut.mjs","names":["useState","useRef"],"sources":["https:/framerusercontent.com/modules/iiAvGMuvRen2r2VUqElb/QoIcv0QwmTSElcu337N6/SimpleWebcamComponent.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,useRef,useEffect}from\"react\";import{addPropertyControls,ControlType}from\"framer\";export function CameraButton({titleSize,spacing,spinnerLink,buttonHeight,buttonLabel,buttonColor,buttonRadius}){const[isLoading,setIsLoading]=useState(false)// 로딩 상태\n;const fileInputRef=useRef(null);const handleButtonClick=()=>{if(fileInputRef.current){fileInputRef.current.click();}};const handleImageChange=event=>{var _event_target_files;const file=(_event_target_files=event.target.files)===null||_event_target_files===void 0?void 0:_event_target_files[0];if(file){setIsLoading(true)// 로딩 상태로 전환\n;}};useEffect(()=>{// isLoading이 true로 변하면 3초 후에 spinnerLink로 이동\nif(isLoading&&spinnerLink){const timer=setTimeout(()=>{window.location.href=spinnerLink;},3e3);// 컴포넌트가 언마운트될 때 타이머를 정리\nreturn()=>clearTimeout(timer);}},[isLoading,spinnerLink]);return /*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",display:\"flex\",justifyContent:\"center\",alignItems:\"center\",flexDirection:\"column\",textAlign:\"center\",width:\"100%\"},children:[isLoading&&/*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",display:\"flex\",flexDirection:\"column\",justifyContent:\"center\",alignItems:\"center\",backgroundColor:\"rgba(255, 255, 255, 0.8)\",zIndex:9999},children:[/*#__PURE__*/_jsx(\"h1\",{style:{fontSize:`${titleSize}px`,marginBottom:`${spacing}px`},children:\"찍은 사진을 검사하고 있어요\"}),/*#__PURE__*/_jsx(\"div\",{className:\"spinner\"})]}),/*#__PURE__*/_jsx(\"button\",{onClick:handleButtonClick,style:{width:\"100%\",height:`${buttonHeight}px`,backgroundColor:buttonColor,borderRadius:`${buttonRadius}px`,fontSize:\"1rem\",fontFamily:\"Pretendard, sans-serif\",fontWeight:\"600\",padding:\"0 20px\",color:\"#FFFFFF\",border:\"none\"},children:buttonLabel}),/*#__PURE__*/_jsx(\"input\",{ref:fileInputRef,type:\"file\",accept:\"image/*\",capture:\"environment\",style:{display:\"none\"},onChange:handleImageChange}),/*#__PURE__*/_jsx(\"style\",{jsx:true,children:`\n        .spinner {\n          width: 30px;\n          height: 30px;\n          border: 4px solid rgba(0, 0, 0, 0.1);\n          border-top-color: #333;\n          border-radius: 50%;\n          animation: spin 1s linear infinite;\n          margin-top: 10px;\n          user-select: none; /* 텍스트 선택 방지 */\n        }\n        @keyframes spin {\n          to {\n            transform: rotate(360deg);\n          }\n        }\n      `})]});}// 프레이머에서 조정 가능한 props 추가\naddPropertyControls(CameraButton,{titleSize:{type:ControlType.Number,title:\"Title Size\",defaultValue:16,min:10,max:50},spacing:{type:ControlType.Number,title:\"Spacing\",defaultValue:10,min:0,max:50},spinnerLink:{type:ControlType.String,title:\"Spinner Link\",defaultValue:\"\"},buttonHeight:{type:ControlType.Number,title:\"Button Height\",defaultValue:40,min:30,max:100},buttonLabel:{type:ControlType.String,title:\"Button Label\",defaultValue:\"카메라 열기\"},buttonColor:{type:ControlType.Color,title:\"Button Color\",defaultValue:\"#007BFF\"},buttonRadius:{type:ControlType.Number,title:\"Button Radius\",defaultValue:5,min:0,max:50}});\nexport const __FramerMetadata__ = {\"exports\":{\"CameraButton\":{\"type\":\"reactComponent\",\"name\":\"CameraButton\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SimpleWebcamComponent.map"],"mappings":"8MAA0J,SAAgB,EAAa,CAAC,YAAU,UAAQ,cAAY,eAAa,cAAY,cAAY,gBAAc,CAAC,GAAK,CAAC,EAAU,GAAcA,EAAS,GAAM,CAChT,EAAaC,EAAO,KAAK,CAG0B,OAFtD,MAAc,CAClB,GAAG,GAAW,EAAY,CAAC,IAAM,EAAM,eAAe,CAAC,EAAO,SAAS,KAAK,GAAc,IAAI,CAC9F,UAAU,aAAa,EAAM,GAAI,CAAC,EAAU,EAAY,CAAC,CAAqB,EAAM,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,QAAQ,OAAO,eAAe,SAAS,WAAW,SAAS,cAAc,SAAS,UAAU,SAAS,MAAM,OAAO,CAAC,SAAS,CAAC,GAAwB,EAAM,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,IAAI,EAAE,KAAK,EAAE,MAAM,OAAO,OAAO,OAAO,QAAQ,OAAO,cAAc,SAAS,eAAe,SAAS,WAAW,SAAS,gBAAgB,2BAA2B,OAAO,KAAK,CAAC,SAAS,CAAc,EAAK,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,EAAU,IAAI,aAAa,GAAG,EAAQ,IAAI,CAAC,SAAS,kBAAkB,CAAC,CAAc,EAAK,MAAM,CAAC,UAAU,UAAU,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,SAAS,CAAC,YAHnnB,CAAI,EAAa,SAAS,EAAa,QAAQ,OAAO,EAGulB,MAAM,CAAC,MAAM,OAAO,OAAO,GAAG,EAAa,IAAI,gBAAgB,EAAY,aAAa,GAAG,EAAa,IAAI,SAAS,OAAO,WAAW,yBAAyB,WAAW,MAAM,QAAQ,SAAS,MAAM,UAAU,OAAO,OAAO,CAAC,SAAS,EAAY,CAAC,CAAc,EAAK,QAAQ,CAAC,IAAI,EAAa,KAAK,OAAO,OAAO,UAAU,QAAQ,cAAc,MAAM,CAAC,QAAQ,OAAO,CAAC,SAHz6B,GAAO,CAAyD,EAAM,OAAO,QAAuE,IAAY,EAAa,GAAK,EAGkxB,CAAC,CAAc,EAAK,QAAQ,CAAC,IAAI,GAAK,SAAS;;;;;;;;;;;;;;;;QAgB1nC,CAAC,CAAC,CAAC,CAAC,sBApB6C,IAA6C,IAAoD,CAqB1J,EAAoB,EAAa,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,aAAa,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,aAAa,GAAG,CAAC,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,aAAa,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,aAAa,SAAS,CAAC,YAAY,CAAC,KAAK,EAAY,MAAM,MAAM,eAAe,aAAa,UAAU,CAAC,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC"}