// 사이드 패널: 아이콘 클릭 시 열기
chrome.sidePanel
  .setPanelBehavior({ openPanelOnActionClick: true })
  .catch(console.error);

// 컨텍스트 메뉴: 이미지 우클릭 시 노출
chrome.runtime.onInstalled.addListener(() => {
  chrome.contextMenus.create({
    id: 'nukki',
    title: '✂️ 실BG로 누끼따서 저장하기',
    contexts: ['image'],
  });
});

// 우클릭 메뉴 클릭 처리
chrome.contextMenus.onClicked.addListener(async (info, tab) => {
  if (info.menuItemId !== 'nukki' || !info.srcUrl) return;

  const imageUrl = info.srcUrl;

  // 1) 사이드 패널 열기
  await chrome.sidePanel.open({ tabId: tab.id });

  // 2) 패널이 준비될 때까지 잠깐 대기 후 URL 전달
  //    (패널이 방금 열렸을 경우 로드 시간 필요)
  const send = (attempt = 0) => {
    chrome.runtime.sendMessage(
      { type: 'context-image', imageUrl },
      (res) => {
        if (chrome.runtime.lastError && attempt < 10) {
          // 패널 아직 준비 안 됨 → 300ms 후 재시도
          setTimeout(() => send(attempt + 1), 300);
        }
      }
    );
  };
  setTimeout(() => send(), 400);
});
