Files
PaperClipAI/ui/src/components/skill-studio/SkillSourceSyncControls.tsx
T
DottaandPaperclip 473c80d13f Automatically import and update project repository skills (#16066)
Automatically import skills from new GitHub project repositories and update enabled sources in the background. Preserve project-derived access, saved selections, immutable execution versions and explicit pins; add legacy adoption, refresh and connection repair in Sources.

Include durable scheduling and bounded work credits, production Storybook journeys, real GitHub-to-routine acceptance receipts and final-head CI/security/Greptile qualification.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-13 16:11:43 -05:00

24 lines
1.1 KiB
TypeScript

import { RefreshCw } from 'lucide-react';
import { Button } from '@/components/ui/button';
import { ToggleSwitch } from '@/components/ui/toggle-switch';
export function SkillSourceSyncControls({ automaticUpdates, refreshing, disabled, onRefresh, onAutomaticUpdates, showPreference = true }: {
automaticUpdates: boolean;
showPreference?: boolean;
refreshing?: boolean;
disabled?: boolean;
onRefresh: () => void;
onAutomaticUpdates: (enabled: boolean) => void;
}) {
return <div className="flex flex-wrap items-center gap-3">
{showPreference && <label className="flex items-center gap-2 text-xs text-muted-foreground">
<ToggleSwitch checked={automaticUpdates} disabled={disabled} onCheckedChange={onAutomaticUpdates} aria-label="Automatic updates" />
Automatic updates
</label>}
<Button size="sm" variant="outline" disabled={disabled || refreshing} onClick={onRefresh}>
<RefreshCw className={refreshing ? 'size-3.5 animate-spin motion-reduce:animate-none' : 'size-3.5'} />
{refreshing ? 'Refreshing…' : 'Refresh'}
</Button>
</div>;
}