feat(sdk): Logo-Navigation, stabile Versionsnummer V001 + Firmenname im Header
Some checks failed
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-ai-compliance (push) Failing after 45s
CI / test-python-backend-compliance (push) Successful in 35s
CI / test-python-document-crawler (push) Successful in 25s
CI / test-python-dsms-gateway (push) Successful in 21s
Some checks failed
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-ai-compliance (push) Failing after 45s
CI / test-python-backend-compliance (push) Successful in 35s
CI / test-python-document-crawler (push) Successful in 25s
CI / test-python-dsms-gateway (push) Successful in 21s
- Logo-Klick fuehrt zurueck zur Startseite (Neues/Bestehendes Projekt) - Neue projectVersion im SDK State (inkrementiert nur bei explizitem Speichern) - Header zeigt Firmenname + V001-Format statt auto-inkrementierende Sync-Version - Sidebar Logo von Link auf Button umgestellt mit customerType-Reset Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -2105,6 +2105,7 @@ export default function CompanyProfilePage() {
|
|||||||
|
|
||||||
setCompanyProfile(completeProfile)
|
setCompanyProfile(completeProfile)
|
||||||
dispatch({ type: 'COMPLETE_STEP', payload: 'company-profile' })
|
dispatch({ type: 'COMPLETE_STEP', payload: 'company-profile' })
|
||||||
|
dispatch({ type: 'SET_STATE', payload: { projectVersion: (state.projectVersion || 0) + 1 } })
|
||||||
|
|
||||||
// Also persist to dedicated backend endpoint
|
// Also persist to dedicated backend endpoint
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -102,8 +102,13 @@ function SDKHeader({ sidebarCollapsed }: { sidebarCollapsed: boolean }) {
|
|||||||
|
|
||||||
{/* Session Info Bar */}
|
{/* Session Info Bar */}
|
||||||
<div className="flex items-center gap-4 px-6 py-1.5 bg-gray-50 border-t border-gray-100 text-xs text-gray-500">
|
<div className="flex items-center gap-4 px-6 py-1.5 bg-gray-50 border-t border-gray-100 text-xs text-gray-500">
|
||||||
{/* Version */}
|
{/* Projekt + Version */}
|
||||||
<span className="font-mono text-gray-400">v{state.version}</span>
|
<span className="text-gray-700 font-medium">
|
||||||
|
{state.companyProfile?.companyName || 'Kein Projekt'}
|
||||||
|
</span>
|
||||||
|
<span className="font-mono text-gray-400">
|
||||||
|
V{String(state.projectVersion || 1).padStart(3, '0')}
|
||||||
|
</span>
|
||||||
|
|
||||||
<span className="text-gray-300">|</span>
|
<span className="text-gray-300">|</span>
|
||||||
|
|
||||||
|
|||||||
@@ -341,7 +341,7 @@ function CorpusStalenessInfo({ ragCorpusStatus }: { ragCorpusStatus: RAGCorpusSt
|
|||||||
|
|
||||||
export function SDKSidebar({ collapsed = false, onCollapsedChange }: SDKSidebarProps) {
|
export function SDKSidebar({ collapsed = false, onCollapsedChange }: SDKSidebarProps) {
|
||||||
const pathname = usePathname()
|
const pathname = usePathname()
|
||||||
const { state, packageCompletion, completionPercentage, getCheckpointStatus } = useSDK()
|
const { state, packageCompletion, completionPercentage, getCheckpointStatus, setCustomerType } = useSDK()
|
||||||
const [pendingCRCount, setPendingCRCount] = React.useState(0)
|
const [pendingCRCount, setPendingCRCount] = React.useState(0)
|
||||||
|
|
||||||
// Poll pending change-request count every 60s
|
// Poll pending change-request count every 60s
|
||||||
@@ -430,7 +430,13 @@ export function SDKSidebar({ collapsed = false, onCollapsedChange }: SDKSidebarP
|
|||||||
<aside className={`fixed left-0 top-0 h-screen ${collapsed ? 'w-16' : 'w-64'} bg-white border-r border-gray-200 flex flex-col z-40 transition-all duration-300`}>
|
<aside className={`fixed left-0 top-0 h-screen ${collapsed ? 'w-16' : 'w-64'} bg-white border-r border-gray-200 flex flex-col z-40 transition-all duration-300`}>
|
||||||
{/* Header */}
|
{/* Header */}
|
||||||
<div className={`p-4 border-b border-gray-200 ${collapsed ? 'flex justify-center' : ''}`}>
|
<div className={`p-4 border-b border-gray-200 ${collapsed ? 'flex justify-center' : ''}`}>
|
||||||
<Link href="/sdk" className={`flex items-center gap-3 ${collapsed ? 'justify-center' : ''}`}>
|
<button
|
||||||
|
onClick={() => {
|
||||||
|
setCustomerType(null as any)
|
||||||
|
window.location.href = '/sdk'
|
||||||
|
}}
|
||||||
|
className={`flex items-center gap-3 ${collapsed ? 'justify-center' : ''} hover:opacity-80 transition-opacity`}
|
||||||
|
>
|
||||||
<div className="w-10 h-10 rounded-xl bg-gradient-to-br from-purple-600 to-indigo-600 flex items-center justify-center flex-shrink-0">
|
<div className="w-10 h-10 rounded-xl bg-gradient-to-br from-purple-600 to-indigo-600 flex items-center justify-center flex-shrink-0">
|
||||||
<svg className="w-6 h-6 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
<svg className="w-6 h-6 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||||
<path
|
<path
|
||||||
@@ -442,12 +448,12 @@ export function SDKSidebar({ collapsed = false, onCollapsedChange }: SDKSidebarP
|
|||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
{!collapsed && (
|
{!collapsed && (
|
||||||
<div>
|
<div className="text-left">
|
||||||
<div className="font-bold text-gray-900">AI Compliance</div>
|
<div className="font-bold text-gray-900">AI Compliance</div>
|
||||||
<div className="text-xs text-gray-500">SDK</div>
|
<div className="text-xs text-gray-500">SDK</div>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</Link>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Overall Progress - hidden when collapsed */}
|
{/* Overall Progress - hidden when collapsed */}
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ const initialPreferences: UserPreferences = {
|
|||||||
const initialState: SDKState = {
|
const initialState: SDKState = {
|
||||||
// Metadata
|
// Metadata
|
||||||
version: '1.0.0',
|
version: '1.0.0',
|
||||||
|
projectVersion: 1,
|
||||||
lastModified: new Date(),
|
lastModified: new Date(),
|
||||||
|
|
||||||
// Tenant & User
|
// Tenant & User
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ export function generateDemoState(tenantId: string, userId: string): Partial<SDK
|
|||||||
return {
|
return {
|
||||||
// Metadata
|
// Metadata
|
||||||
version: '1.0.0',
|
version: '1.0.0',
|
||||||
|
projectVersion: 1,
|
||||||
lastModified: now,
|
lastModified: now,
|
||||||
|
|
||||||
// Tenant & User
|
// Tenant & User
|
||||||
|
|||||||
@@ -1489,6 +1489,7 @@ export interface UserPreferences {
|
|||||||
export interface SDKState {
|
export interface SDKState {
|
||||||
// Metadata
|
// Metadata
|
||||||
version: string
|
version: string
|
||||||
|
projectVersion: number
|
||||||
lastModified: Date
|
lastModified: Date
|
||||||
|
|
||||||
// Tenant & User
|
// Tenant & User
|
||||||
|
|||||||
Reference in New Issue
Block a user