diff --git a/src/renderer/src/App.tsx b/src/renderer/src/App.tsx index 252ec06..4d9b872 100644 --- a/src/renderer/src/App.tsx +++ b/src/renderer/src/App.tsx @@ -655,8 +655,6 @@ function LocalPcWorkspaceMockup({ const studentSlug = makeStudentSlug(studentEmail) const clonePathPreview = makePlatformWorkspaceRoot(configuredWorkspaceRoot, studentSlug, weekNumber, platformKey) const remoteRuntimeRoot = `/tmp/autonomy-studio/sessions/${`${platformId}-${studentSlug}-week-${weekNumber}`.replace(/[^a-zA-Z0-9_.-]+/g, '-')}` - const draftClonePathPreview = makePlatformWorkspaceRoot(configuredDraftWorkspaceRoot, studentSlug, weekNumber, platformKey) - const draftGiteaRepositoryPreview = `${sourceSettingsDraft.giteaBaseUrl.replace(/\/+$/, '')}/${sourceSettingsDraft.giteaOwner}/${studentSlug}-week-${weekNumber}.git` const { visualizationStacks, visualizationStack, @@ -1415,8 +1413,8 @@ function LocalPcWorkspaceMockup({ workspaceRoot: remoteWorkspace ? platformSourceSettingsDefaults.workspaceRoot : sourceSettingsDraft.workspaceRoot.trim() || defaultStudioSourceSettings.workspaceRoot, - giteaBaseUrl: sourceSettingsDraft.giteaBaseUrl.trim().replace(/\/+$/, '') || defaultStudioSourceSettings.giteaBaseUrl, - giteaOwner: sourceSettingsDraft.giteaOwner.trim() || defaultStudioSourceSettings.giteaOwner, + giteaBaseUrl: sourceSettings.giteaBaseUrl, + giteaOwner: sourceSettings.giteaOwner, gpuEnabled: sourceSettingsDraft.gpuEnabled, rosDomainId: sourceSettingsDraft.rosDomainId.trim() || defaultStudioSourceSettings.rosDomainId }) @@ -2418,8 +2416,6 @@ function LocalPcWorkspaceMockup({ configuredDraftWorkspaceRoot={configuredDraftWorkspaceRoot} sourceSettingsDraft={sourceSettingsDraft} platformSourceSettingsDefaults={platformSourceSettingsDefaults} - draftClonePathPreview={draftClonePathPreview} - draftGiteaRepositoryPreview={draftGiteaRepositoryPreview} onUpdateSourceSetting={updateSourceSetting} onResetSourceSettings={setSourceSettingsDraft} onSaveSourceSettings={saveSourceSettings} @@ -3013,8 +3009,9 @@ export default function App(): React.JSX.Element { useEffect(() => { if (!courseSelectionVisible) return + if (studentCoursesLoaded || studentCoursesLoading) return void loadStudentCourses({ autoSelectSingle: false }) - }, [courseSelectionVisible, loadStudentCourses]) + }, [courseSelectionVisible, loadStudentCourses, studentCoursesLoaded, studentCoursesLoading]) const loadCurriculum = useCallback(async (): Promise => { if (!authReady || !studentCoursesLoaded || courseSelectionVisible || !selectedCourseId) return @@ -4068,10 +4065,7 @@ export default function App(): React.JSX.Element { activeLearningStep={activeLearningStep} allowFutureLearningSteps={publicGuideCourseActive} onLearningStepSelect={publicGuideCourseActive ? setActiveLearningStep : undefined} - onSubmissionRecorded={() => { - setCurriculumRefreshSignal((current) => current + 1) - void loadStudentCourses({ autoSelectSingle: false }) - }} + onSubmissionRecorded={() => undefined} /> )} diff --git a/src/renderer/src/components/TitleBar.tsx b/src/renderer/src/components/TitleBar.tsx index edbba6b..974ab99 100644 --- a/src/renderer/src/components/TitleBar.tsx +++ b/src/renderer/src/components/TitleBar.tsx @@ -87,7 +87,7 @@ const LAUNCHER_API_BASE_URL = NOTIFICATION_API_BASE_URL.replace(/\/api$/, '') const LMS_AUTH_SESSION_STORAGE_KEY = 'autonomy-studio.lms.auth-session' const NOTIFICATION_DROPDOWN_LIMIT = 10 const NOTIFICATION_MODAL_PAGE_SIZE = 8 -const NOTIFICATION_REFRESH_INTERVAL_MS = 10_000 +const NOTIFICATION_REFRESH_INTERVAL_MS = 60_000 const normalizeNotification = (notification: NotificationMessage): NotificationMessage => ({ ...notification, diff --git a/src/renderer/src/features/workspace/WorkspaceSettingsView.tsx b/src/renderer/src/features/workspace/WorkspaceSettingsView.tsx index b67ef92..d5be15c 100644 --- a/src/renderer/src/features/workspace/WorkspaceSettingsView.tsx +++ b/src/renderer/src/features/workspace/WorkspaceSettingsView.tsx @@ -10,8 +10,6 @@ type Props = { configuredDraftWorkspaceRoot: string sourceSettingsDraft: StudioSourceSettings platformSourceSettingsDefaults: StudioSourceSettings - draftClonePathPreview: string - draftGiteaRepositoryPreview: string onUpdateSourceSetting: (key: Key, value: StudioSourceSettings[Key]) => void onResetSourceSettings: (settings: StudioSourceSettings) => void onSaveSourceSettings: () => void @@ -26,8 +24,6 @@ function WorkspaceSettingsView({ configuredDraftWorkspaceRoot, sourceSettingsDraft, platformSourceSettingsDefaults, - draftClonePathPreview, - draftGiteaRepositoryPreview, onUpdateSourceSetting, onResetSourceSettings, onSaveSourceSettings @@ -50,7 +46,7 @@ function WorkspaceSettingsView({

공용 플랫폼 환경

- 원격 플랫폼의 워크스페이스와 저장소 설정은 강사/관리자 설정을 사용합니다. + 원격 플랫폼의 워크스페이스 설정은 강사/관리자 설정을 사용합니다.

@@ -76,12 +72,6 @@ function WorkspaceSettingsView({ onChange={(value) => onUpdateSourceSetting('rosDomainId', value.replace(/[^\d]/g, '').slice(0, 3))} dark={dark} /> - onUpdateSourceSetting('giteaBaseUrl', value)} - dark={dark} - />
-
-

저장소

-
-
- clone path: {draftClonePathPreview} -
-
- repository: {draftGiteaRepositoryPreview} -
-
-
-