()
| 51 | } |
| 52 | |
| 53 | const App = () => { |
| 54 | const { |
| 55 | didHydrateState, |
| 56 | showWelcome, |
| 57 | settingsImportedAt, |
| 58 | shouldShowAnnouncement, |
| 59 | telemetrySetting, |
| 60 | telemetryKey, |
| 61 | machineId, |
| 62 | renderContext, |
| 63 | mdmCompliant, |
| 64 | } = useExtensionState() |
| 65 | |
| 66 | // Create a persistent state manager |
| 67 | const marketplaceStateManager = useMemo(() => new MarketplaceViewStateManager(), []) |
| 68 | |
| 69 | const [showAnnouncement, setShowAnnouncement] = useState(false) |
| 70 | const [tab, setTab] = useState<Tab>("chat") |
| 71 | const handledImportRef = useRef<number | undefined>(undefined) |
| 72 | |
| 73 | const [deleteMessageDialogState, setDeleteMessageDialogState] = useState<DeleteMessageDialogState>({ |
| 74 | isOpen: false, |
| 75 | messageTs: 0, |
| 76 | hasCheckpoint: false, |
| 77 | }) |
| 78 | |
| 79 | const [editMessageDialogState, setEditMessageDialogState] = useState<EditMessageDialogState>({ |
| 80 | isOpen: false, |
| 81 | messageTs: 0, |
| 82 | text: "", |
| 83 | hasCheckpoint: false, |
| 84 | images: [], |
| 85 | }) |
| 86 | |
| 87 | const settingsRef = useRef<SettingsViewRef>(null) |
| 88 | const chatViewRef = useRef<ChatViewRef>(null) |
| 89 | |
| 90 | const switchTab = useCallback( |
| 91 | (newTab: Tab) => { |
| 92 | if (mdmCompliant === false) { |
| 93 | // Notify the user that authentication is required by their organization |
| 94 | vscode.postMessage({ type: "showMdmAuthRequiredNotification" }) |
| 95 | return |
| 96 | } |
| 97 | |
| 98 | setCurrentSection(undefined) |
| 99 | setCurrentMarketplaceTab(undefined) |
| 100 | |
| 101 | if (settingsRef.current?.checkUnsaveChanges) { |
| 102 | settingsRef.current.checkUnsaveChanges(() => setTab(newTab)) |
| 103 | } else { |
| 104 | setTab(newTab) |
| 105 | } |
| 106 | }, |
| 107 | [mdmCompliant], |
| 108 | ) |
| 109 | |
| 110 | const [currentSection, setCurrentSection] = useState<string | undefined>(undefined) |
nothing calls this directly
no test coverage detected