mirror of
https://github.com/siteboon/claudecodeui.git
synced 2026-05-01 02:08:43 +00:00
* refactor(ui): replace in-repo Command primitive with cmdk wrapper * feat(command-palette): add global Cmd+K palette with v1 actions * feat(command-palette): add session, file, and commit search sources * refactor: add provider names to model constants * feat(command-palette): add settings, navigation, message search, and ⌘K hints * feat(command-palette): add git fetch/pull/push and branch switch actions * refactor(command-palette): consolidate fetch source hooks behind useApiSource * refactor(command-palette): extract useCommandKey and SETTINGS_MAIN_TABS metadata * refactor(command-palette): extract groups into declarative registry * refactor(command-palette): wire openFile through PaletteOpsContext * refactor: migrate openSettings and refreshProjects from window.* to PaletteOpsContext * refactor(command-palette): inline groups and delete registry indirection * refactor(command-palette): return items array directly from source hooks * refactor(palette-ops): flatten Handle wrapper into ref-based registry * refactor: inline useCommandKey as MOD_KEY constant in two call sites * feat: introduce pages and fix bug on branch switching * fix: small labels * fix: coderabbit issues * fix: coderabbit comments * Update src/components/chat/view/subcomponents/ProviderSelectionEmptyState.tsx Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
39 lines
1.1 KiB
TypeScript
39 lines
1.1 KiB
TypeScript
import { useCallback } from 'react';
|
|
|
|
import { authenticatedFetch } from '../../../utils/api';
|
|
|
|
async function postGit(path: string, body: Record<string, unknown>) {
|
|
const res = await authenticatedFetch(path, {
|
|
method: 'POST',
|
|
body: JSON.stringify(body),
|
|
});
|
|
return res.json();
|
|
}
|
|
|
|
export function useGitActions(projectId: string | undefined) {
|
|
const fetch = useCallback(() => {
|
|
if (!projectId) return Promise.resolve();
|
|
return postGit('/api/git/fetch', { project: projectId });
|
|
}, [projectId]);
|
|
|
|
const pull = useCallback(() => {
|
|
if (!projectId) return Promise.resolve();
|
|
return postGit('/api/git/pull', { project: projectId });
|
|
}, [projectId]);
|
|
|
|
const push = useCallback(() => {
|
|
if (!projectId) return Promise.resolve();
|
|
return postGit('/api/git/push', { project: projectId });
|
|
}, [projectId]);
|
|
|
|
const checkout = useCallback(
|
|
(branch: string) => {
|
|
if (!projectId) return Promise.resolve();
|
|
return postGit('/api/git/checkout', { project: projectId, branch });
|
|
},
|
|
[projectId],
|
|
);
|
|
|
|
return { fetch, pull, push, checkout };
|
|
}
|