[web] workspace: restructure the workspace directories (#1677)

This commit is contained in:
Nitesh Seram 2025-09-09 13:41:20 +05:30 committed by GitHub
parent a4a23e3e47
commit 961f01b453
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
87 changed files with 200 additions and 215 deletions

View File

@ -2,12 +2,15 @@
import { useUser } from '@supabase/auth-helpers-react';
import clsx from 'clsx';
import { ReactNode, Suspense } from 'react';
import type { ReactNode} from 'react';
import { Suspense } from 'react';
import QuestionBookmarkAction from '~/components/interviews/questions/common/QuestionBookmarkAction';
import QuestionProgressAction from '~/components/interviews/questions/common/QuestionProgressAction';
import QuestionReportIssueButton from '~/components/interviews/questions/common/QuestionReportIssueButton';
import type { QuestionListTypeData } from '~/components/interviews/questions/common/QuestionsTypes';
import InterviewsQuestionsListSlideOutButton from '~/components/interviews/questions/listings/slideout/InterviewsQuestionsListSlideOutButton';
import Text from '~/components/ui/Text';
import {
themeBackgroundDarkColor,
themeBorderColor,
@ -15,31 +18,29 @@ import {
import { useQueryQuestionProgress } from '~/db/QuestionsProgressClient';
import { hashQuestion } from '~/db/QuestionsUtils';
import type { QuestionListTypeData } from '~/components/interviews/questions/common/QuestionsTypes';
import Text from '~/components/ui/Text';
type Props = Readonly<{
allowBookmark?: boolean;
questionTitle?: string;
initialListType?: QuestionListTypeData;
allowMarkComplete?: boolean;
initialListType?: QuestionListTypeData;
leftAddOnItem?: ReactNode;
listIsShownInSidebarOnDesktop: boolean;
metadata: React.ComponentProps<typeof QuestionProgressAction>['metadata'];
studyListKey?: string;
leftAddOnItem?: ReactNode;
questionTitle?: string;
slideOutSearchParam_MUST_BE_UNIQUE_ON_PAGE?: string | null;
studyListKey?: string;
}>;
export default function InterviewsStudyListBottomBar({
allowBookmark = true,
allowMarkComplete = true,
initialListType,
leftAddOnItem,
listIsShownInSidebarOnDesktop,
metadata,
studyListKey,
leftAddOnItem,
initialListType,
questionTitle,
slideOutSearchParam_MUST_BE_UNIQUE_ON_PAGE = 'qns_slideout',
studyListKey,
}: Props) {
const user = useUser();
const { isLoading } = useQueryQuestionProgress(

View File

@ -3,7 +3,7 @@ import type { ComponentProps } from 'react';
import MDXCodeBlock, {
convertContentToCode,
} from '~/components/mdx/MDXCodeBlock';
import JavaScriptCodingQuizCodeEditor from '~/components/workspace/javascript/JavaScriptCodingQuizCodeEditor';
import JavaScriptCodingQuizCodeEditor from '~/components/workspace/javascript/editor/JavaScriptCodingQuizCodeEditor';
type Props = ComponentProps<'pre'> & Readonly<{ live?: boolean }>;

View File

@ -9,16 +9,14 @@ import { RiCodeLine } from 'react-icons/ri';
import useQuestionLogEventCopyContents from '~/components/interviews/questions/common/useQuestionLogEventCopyContents';
import { useIntl } from '~/components/intl';
import { codingFilesShouldUseTypeScript } from '~/components/workspace/common/codingFilesShouldUseTypeScript';
import type { CodingWorkspaceTabContents } from '~/components/workspace/common/CodingWorkspaceContext';
import { CodingWorkspaceProvider } from '~/components/workspace/common/CodingWorkspaceContext';
import CodingWorkspaceDivider, {
CodingWorkspaceDividerWrapperClassname,
} from '~/components/workspace/common/CodingWorkspaceDivider';
import CodingWorkspaceErrorBoundary from '~/components/workspace/common/CodingWorkspaceErrorBoundary';
import { codingWorkspaceExtractFileNameFromPath } from '~/components/workspace/common/codingWorkspaceExtractFileNameFromPath';
import { CodingWorkspaceTabIcons } from '~/components/workspace/common/CodingWorkspaceTabIcons';
import CodingWorkspaceConsole from '~/components/workspace/common/console/CodingWorkspaceConsole';
import type { CodingWorkspaceTabContents } from '~/components/workspace/common/context/CodingWorkspaceContext';
import { CodingWorkspaceProvider } from '~/components/workspace/common/context/CodingWorkspaceContext';
import useMonacoEditorModels from '~/components/workspace/common/editor/useMonacoEditorModels';
import useMonacoEditorRegisterEditorOpener from '~/components/workspace/common/editor/useMonacoEditorRegisterEditorOpener';
import useMonacoLanguagesFetchTypeDeclarations from '~/components/workspace/common/editor/useMonacoLanguagesFetchTypeDeclarations';
@ -32,8 +30,10 @@ import {
codingWorkspaceTabFileId,
codingWorkspaceTabFilePattern,
} from '~/components/workspace/common/tabs/codingWorkspaceTabId';
import UserInterfaceCodingWorkspacePreview from '~/components/workspace/user-interface/UserInterfaceCodingWorkspacePreview';
import useUserInterfaceCodingWorkspaceTilesContext from '~/components/workspace/user-interface/useUserInterfaceCodingWorkspaceTilesContext';
import { codingFilesShouldUseTypeScript } from '~/components/workspace/common/utils/codingFilesShouldUseTypeScript';
import { codingWorkspaceExtractFileNameFromPath } from '~/components/workspace/common/utils/codingWorkspaceExtractFileNameFromPath';
import useUserInterfaceCodingWorkspaceTilesContext from '~/components/workspace/user-interface/hooks/useUserInterfaceCodingWorkspaceTilesContext';
import UserInterfaceCodingWorkspacePreview from '~/components/workspace/user-interface/preview/UserInterfaceCodingWorkspacePreview';
import { TilesPanelRoot } from '~/react-tiling/components/TilesPanelRoot';
import { TilesProvider } from '~/react-tiling/state/TilesProvider';

View File

@ -6,13 +6,13 @@ import { RiCodeLine } from 'react-icons/ri';
import { useIntl } from '~/components/intl';
import Button from '~/components/ui/Button';
import Text from '~/components/ui/Text';
import { codingWorkspaceExtractFileNameFromPath } from '~/components/workspace/common/codingWorkspaceExtractFileNameFromPath';
import { codingWorkspaceExplorerFilePathToIcon } from '~/components/workspace/common/explorer/codingWorkspaceExplorerFilePathToIcon';
import {
codingWorkspaceTabFileId,
codingWorkspaceTabFilePattern,
} from '~/components/workspace/common/tabs/codingWorkspaceTabId';
import useUserInterfaceCodingWorkspaceTilesContext from '~/components/workspace/user-interface/useUserInterfaceCodingWorkspaceTilesContext';
import { codingWorkspaceExtractFileNameFromPath } from '~/components/workspace/common/utils/codingWorkspaceExtractFileNameFromPath';
import useUserInterfaceCodingWorkspaceTilesContext from '~/components/workspace/user-interface/hooks/useUserInterfaceCodingWorkspaceTilesContext';
import type {
ProjectsChallengeSolutionWorkspacePredefinedTabsContents,

View File

@ -1,4 +1,4 @@
import type { CodingWorkspaceTabContents } from '~/components/workspace/common/CodingWorkspaceContext';
import type { CodingWorkspaceTabContents } from '~/components/workspace/common/context/CodingWorkspaceContext';
import type { CodingWorkspaceTabFileType } from '~/components/workspace/common/tabs/codingWorkspaceTabId';
export type ProjectsChallengeSolutionWorkspacePredefinedTabsType =

View File

@ -7,12 +7,12 @@ import { useIntl } from '~/components/intl';
import Banner from '~/components/ui/Banner';
import Button from '~/components/ui/Button';
import { themeBorderColor } from '~/components/ui/theme';
import { useCodingWorkspaceContext } from '~/components/workspace/common/CodingWorkspaceContext';
import { useCodingWorkspaceContext } from '~/components/workspace/common/context/CodingWorkspaceContext';
import CodingWorkspaceEditorShortcutsButton from '~/components/workspace/common/editor/CodingWorkspaceEditorShortcutsButton';
import CodingWorkspaceResetButton from '~/components/workspace/common/editor/CodingWorkspaceResetButton';
import CodingWorkspaceThemeSelect from '~/components/workspace/common/editor/CodingWorkspaceThemeSelect';
import MonacoCodeEditor from '~/components/workspace/common/editor/MonacoCodeEditor';
import useUserInterfaceCodingWorkspaceTilesContext from '~/components/workspace/user-interface/useUserInterfaceCodingWorkspaceTilesContext';
import useUserInterfaceCodingWorkspaceTilesContext from '~/components/workspace/user-interface/hooks/useUserInterfaceCodingWorkspaceTilesContext';
export default function ProjectsUserInterfaceCodingWorkspaceCodeEditor({
filePath,

View File

@ -12,7 +12,7 @@ import type { QuestionMetadata } from '~/components/interviews/questions/common/
import { useIntl } from '~/components/intl';
import DropdownMenu from '~/components/ui/DropdownMenu';
import { useCodingWorkspaceUnsavedSolutionContext } from './CodingWorkspaceUnsavedSolutionContext';
import { useCodingWorkspaceUnsavedSolutionContext } from './context/CodingWorkspaceUnsavedSolutionContext';
import {
useCodingWorkspaceDispatch,
useCodingWorkspaceSelector,

View File

@ -7,7 +7,7 @@ import ConfirmationDialog from '~/components/common/ConfirmationDialog';
import { useIntl } from '~/components/intl';
import Button from '~/components/ui/Button';
import { useCodingWorkspaceUnsavedSolutionContext } from './CodingWorkspaceUnsavedSolutionContext';
import { useCodingWorkspaceUnsavedSolutionContext } from './context/CodingWorkspaceUnsavedSolutionContext';
import { useCodingWorkspaceSelector } from './store/hooks';
type Variant = 'attempt' | 'solution';

View File

@ -3,7 +3,7 @@ import type { Dispatch, ReactNode, SetStateAction } from 'react';
import { createContext, useContext, useEffect, useState } from 'react';
import { useMediaQuery } from 'usehooks-ts';
import { useCodingWorkspaceSelector } from './store/hooks';
import { useCodingWorkspaceSelector } from '../store/hooks';
type Props = Readonly<{
children: ReactNode;

View File

@ -6,7 +6,7 @@ import Text from '~/components/ui/Text';
import type { CustomActionsOrComponent } from '~/react-tiling/components/TilesPanelActions';
import CodingWorkspaceThemeSelect from './editor/CodingWorkspaceThemeSelect';
import CodingWorkspaceThemeSelect from '../editor/CodingWorkspaceThemeSelect';
export default function useCodingWorkspaceCodeEditorCustomActions({
openEditorShortcuts,

View File

@ -1,7 +1,7 @@
import { useSandpack } from '@codesandbox/sandpack-react';
import { useEffect } from 'react';
import { useCodingWorkspaceSelector } from './store/hooks';
import { useCodingWorkspaceSelector } from '../store/hooks';
export default function useCodingWorkspaceSyncSandpackFiles() {
const files = useCodingWorkspaceSelector(

View File

@ -8,16 +8,15 @@ import { FormattedMessage, useIntl } from '~/components/intl';
import Button from '~/components/ui/Button';
import Text, { textVariants } from '~/components/ui/Text';
import { themeBackgroundColor } from '~/components/ui/theme';
import CodingWorkspaceOverwriteConfirmationDialog from './CodingWorkspaceOverwriteConfirmationDialog';
import CodingWorkspaceRevertCodeConfirmationDialog from './CodingWorkspaceRevertCodeConfirmationDialog';
import CodingWorkspaceSolutionUnsavedChangesDialog from './CodingWorkspaceSolutionUnsavedChangesDialog';
import { useCodingWorkspaceUnsavedSolutionContext } from './CodingWorkspaceUnsavedSolutionContext';
import { useCodingWorkspaceUnsavedSolutionContext } from '~/components/workspace/common/context/CodingWorkspaceUnsavedSolutionContext';
import CodingWorkspaceOverwriteConfirmationDialog from '~/components/workspace/common/solution/CodingWorkspaceOverwriteConfirmationDialog';
import CodingWorkspaceRevertCodeConfirmationDialog from '~/components/workspace/common/solution/CodingWorkspaceRevertCodeConfirmationDialog';
import CodingWorkspaceSolutionUnsavedChangesDialog from '~/components/workspace/common/solution/CodingWorkspaceSolutionUnsavedChangesDialog';
import {
useCodingWorkspaceDispatch,
useCodingWorkspaceSelector,
} from './store/hooks';
import { updateCurrentOpenedSolution } from './store/solution-slice';
} from '~/components/workspace/common/store/hooks';
import { updateCurrentOpenedSolution } from '~/components/workspace/common/store/solution-slice';
type Props = Readonly<{
isMobile: boolean;

View File

@ -1,6 +1,6 @@
import type { Mock } from 'vitest';
import { codingWorkspaceConvertFilesToSandpackBundlerFiles } from '../codingWorkspaceConvertFiles';
import { codingWorkspaceConvertFilesToSandpackBundlerFiles } from '../utils/codingWorkspaceConvertFiles';
import reducer, {
initializeSandpack,
replaceCurrentFileState,

View File

@ -3,7 +3,7 @@ import type { SandpackFiles } from '@codesandbox/sandpack-react';
import type { PayloadAction } from '@reduxjs/toolkit';
import { createSlice } from '@reduxjs/toolkit';
import { codingWorkspaceConvertFilesToSandpackBundlerFiles } from '../codingWorkspaceConvertFiles';
import { codingWorkspaceConvertFilesToSandpackBundlerFiles } from '../utils/codingWorkspaceConvertFiles';
type FileState = Readonly<{
activeFile: string;

View File

@ -8,23 +8,23 @@ import type {
QuestionMetadata,
} from '~/components/interviews/questions/common/QuestionsTypes';
import useQuestionsAutoMarkAsComplete from '~/components/interviews/questions/common/useQuestionsAutoMarkAsComplete';
import useCodingWorkspaceSyncSandpackFiles from '~/components/workspace/common/useCodingWorkspaceSyncSandpackFiles';
import useCodingWorkspaceSyncSandpackFiles from '~/components/workspace/common/hooks/useCodingWorkspaceSyncSandpackFiles';
import { TilesProvider } from '~/react-tiling/state/TilesProvider';
import { codingFilesShouldUseTypeScript } from '../common/codingFilesShouldUseTypeScript';
import { CodingWorkspaceUnsavedSolutionProvider } from '../common/CodingWorkspaceUnsavedSolutionContext';
import { CodingWorkspaceUnsavedSolutionProvider } from '../common/context/CodingWorkspaceUnsavedSolutionContext';
import useMonacoEditorModels from '../common/editor/useMonacoEditorModels';
import useMonacoLanguagesFetchTypeDeclarations from '../common/editor/useMonacoLanguagesFetchTypeDeclarations';
import useMonacoLanguagesLoadTSConfig from '../common/editor/useMonacoLanguagesLoadTSConfig';
import useMonacoLanguagesTypeScriptRunDiagnostics from '../common/editor/useMonacoLanguagesTypeScriptRunDiagnostics';
import useRestartSandpack from '../common/sandpack/useRestartSandpack';
import { codingFilesShouldUseTypeScript } from '../common/utils/codingFilesShouldUseTypeScript';
import useJavaScriptCodingWorkspaceSaveCodeLocally from './hooks/useJavaScriptCodingWorkspaceSaveLocally';
import {
getJavaScriptCodingWorkspaceLayoutTablet,
getJavaScriptCodingWorkspaceLayoutTwoColumns,
} from './JavaScriptCodingWorkspaceLayouts';
} from './layout/JavaScriptCodingWorkspaceLayouts';
import { useJavaScriptCodingWorkspaceSelector } from './store/hooks';
import useJavaScriptCodingWorkspaceSaveCodeLocally from './useJavaScriptCodingWorkspaceSaveLocally';
export type JavaScriptCodingWorkspaceProps = Readonly<{
canViewPremiumContent: boolean;

View File

@ -8,14 +8,16 @@ import { useMediaQuery } from 'usehooks-ts';
import InterviewsPremiumBadge from '~/components/interviews/common/InterviewsPremiumBadge';
import { useIntl } from '~/components/intl';
import type { CodingWorkspaceTabContents } from '~/components/workspace/common/CodingWorkspaceContext';
import CodingWorkspaceDescriptionAddOnItems from '~/components/workspace/common/CodingWorkspaceDescriptionAddOnItems';
import CodingWorkspaceDivider, {
CodingWorkspaceDividerWrapperClassname,
} from '~/components/workspace/common/CodingWorkspaceDivider';
import CodingWorkspaceErrorBoundary from '~/components/workspace/common/CodingWorkspaceErrorBoundary';
import CodingWorkspaceConsole from '~/components/workspace/common/console/CodingWorkspaceConsole';
import type { CodingWorkspaceTabContents } from '~/components/workspace/common/context/CodingWorkspaceContext';
import CodingWorkspaceEditorShortcutsTab from '~/components/workspace/common/editor/CodingWorkspaceEditorShortcutsTab';
import useCodingWorkspaceCodeEditorCustomActions from '~/components/workspace/common/hooks/useCodingWorkspaceCodeEditorCustomActions';
import useTabletResponsiveLayout from '~/components/workspace/common/hooks/useTabletResponsiveLayout';
import {
codingWorkspaceTabAttemptId,
codingWorkspaceTabAttemptPattern,
@ -24,37 +26,35 @@ import {
codingWorkspaceTabFileId,
codingWorkspaceTabFilePattern,
} from '~/components/workspace/common/tabs/codingWorkspaceTabId';
import useCodingWorkspaceCodeEditorCustomActions from '~/components/workspace/common/useCodingWorkspaceCodeEditorCustomActions';
import useTabletResponsiveLayout from '~/components/workspace/common/useTabletResponsiveLayout';
import JavaScriptCodingWorkspaceCodeEditor from '~/components/workspace/javascript/editor/JavaScriptCodingWorkspaceCodeEditor';
import JavaScriptCodingWorkspaceNewTab from '~/components/workspace/javascript/JavaScriptCodingWorkspaceNewTab';
import JavaScriptCodingWorkspaceCommunitySolutionCreateTab from '~/components/workspace/javascript/solution/JavaScriptCodingWorkspaceCommunitySolutionCreateTab';
import JavaScriptCodingWorkspaceCommunitySolutionList from '~/components/workspace/javascript/solution/JavaScriptCodingWorkspaceCommunitySolutionList';
import JavaScriptCodingWorkspaceCommunitySolutionTab from '~/components/workspace/javascript/solution/JavaScriptCodingWorkspaceCommunitySolutionTab';
import JavaScriptCodingWorkspaceSolution from '~/components/workspace/javascript/solution/JavaScriptCodingWorkspaceSolution';
import { useJavaScriptCodingWorkspaceSelector } from '~/components/workspace/javascript/store/hooks';
import JavaScriptCodingWorkspaceTestsRunTab from '~/components/workspace/javascript/tests/JavaScriptCodingWorkspaceRunTab';
import JavaScriptCodingWorkspaceTestsSubmitTab from '~/components/workspace/javascript/tests/JavaScriptCodingWorkspaceSubmitTab';
import { TilesPanelRoot } from '~/react-tiling/components/TilesPanelRoot';
import { CodingWorkspaceTabIcons } from '../common/CodingWorkspaceTabIcons';
import useJavaScriptCodingWorkspaceTilesContext from './hooks/useJavaScriptCodingWorkspaceTilesContext';
import type { JavaScriptWorkspaceRenderProps } from './JavaScriptCodingWorkspace';
import JavaScriptCodingWorkspaceBottomBar from './JavaScriptCodingWorkspaceBottomBar';
import JavaScriptCodingWorkspaceCodeEditor from './JavaScriptCodingWorkspaceCodeEditor';
import JavaScriptCodingWorkspaceCommunitySolutionCreateTab from './JavaScriptCodingWorkspaceCommunitySolutionCreateTab';
import JavaScriptCodingWorkspaceCommunitySolutionList from './JavaScriptCodingWorkspaceCommunitySolutionList';
import JavaScriptCodingWorkspaceCommunitySolutionTab from './JavaScriptCodingWorkspaceCommunitySolutionTab';
import JavaScriptCodingWorkspaceDescription from './JavaScriptCodingWorkspaceDescription';
import {
getJavaScriptCodingWorkspaceLayoutTablet,
getJavaScriptCodingWorkspaceLayoutTwoColumns,
} from './JavaScriptCodingWorkspaceLayouts';
import JavaScriptCodingWorkspaceNewTab from './JavaScriptCodingWorkspaceNewTab';
import JavaScriptCodingWorkspaceTestsRunTab from './JavaScriptCodingWorkspaceRunTab';
import JavaScriptCodingWorkspaceSolution from './JavaScriptCodingWorkspaceSolution';
import JavaScriptCodingWorkspaceSubmissionList from './JavaScriptCodingWorkspaceSubmissionList';
import JavaScriptCodingWorkspaceSubmissionTab from './JavaScriptCodingWorkspaceSubmissionTab';
import JavaScriptCodingWorkspaceTestsSubmitTab from './JavaScriptCodingWorkspaceSubmitTab';
import JavaScriptCodingWorkspaceTestsCode from './JavaScriptCodingWorkspaceTestsCode';
import JavaScriptCodingWorkspaceTestsEditor from './JavaScriptCodingWorkspaceTestsEditor';
import type {
JavaScriptCodingWorkspacePredefinedTabsContents,
JavaScriptCodingWorkspaceTabsType,
} from './JavaScriptCodingWorkspaceTypes';
import useJavaScriptCodingWorkspaceTilesContext from './useJavaScriptCodingWorkspaceTilesContext';
import {
getJavaScriptCodingWorkspaceLayoutTablet,
getJavaScriptCodingWorkspaceLayoutTwoColumns,
} from './layout/JavaScriptCodingWorkspaceLayouts';
import JavaScriptCodingWorkspaceSubmissionList from './submission/JavaScriptCodingWorkspaceSubmissionList';
import JavaScriptCodingWorkspaceSubmissionTab from './submission/JavaScriptCodingWorkspaceSubmissionTab';
import JavaScriptCodingWorkspaceTestsCode from './tests/JavaScriptCodingWorkspaceTestsCode';
import JavaScriptCodingWorkspaceTestsEditor from './tests/JavaScriptCodingWorkspaceTestsEditor';
const JavaScriptCodingWorkspaceTilesPanelRoot =
TilesPanelRoot<JavaScriptCodingWorkspaceTabsType>;

View File

@ -14,18 +14,18 @@ import Button from '~/components/ui/Button';
import Divider from '~/components/ui/Divider';
import CodingWorkspaceBottomBar from '~/components/workspace/common/CodingWorkspaceBottomBar';
import { CodingWorkspaceBottomBarSettingsDropdownMenu } from '~/components/workspace/common/CodingWorkspaceBottomBarSettingsDropdownMenu';
import CodingWorkspaceMobileSolutionButton from '~/components/workspace/common/CodingWorkspaceMobileSolutionButton';
import CodingWorkspaceTimer from '~/components/workspace/common/CodingWorkspaceTimer';
import CodingWorkspaceMobileSolutionButton from '~/components/workspace/common/solution/CodingWorkspaceMobileSolutionButton';
import { updateFile } from '~/components/workspace/common/store/sandpack-slice';
import { pauseTimer } from '~/components/workspace/common/store/timer-slice';
import JavaScriptCodingWorkspaceLayoutDialog from '~/components/workspace/javascript/layout/JavaScriptCodingWorkspaceLayoutDialog';
import {
useJavaScriptCodingWorkspaceDispatch,
useJavaScriptCodingWorkspaceSelector,
} from '~/components/workspace/javascript/store/hooks';
import { deleteLocalJavaScriptQuestionCode } from './JavaScriptCodingWorkspaceCodeStorage';
import JavaScriptCodingWorkspaceLanguageDropdown from './JavaScriptCodingWorkspaceLanguageDropdown';
import JavaScriptCodingWorkspaceLayoutDialog from './JavaScriptCodingWorkspaceLayoutDialog';
import JavaScriptCodingWorkspaceLanguageDropdown from './language/JavaScriptCodingWorkspaceLanguageDropdown';
import { runTests, submit } from './store/execution-slice';
type Mode = ComponentProps<typeof CodingWorkspaceMobileSolutionButton>['mode'];

View File

@ -18,7 +18,7 @@ import CodingWorkspaceQuestionContentProse from '~/components/workspace/common/C
import { useQueryQuestionProgress } from '~/db/QuestionsProgressClient';
import JavaScriptCodingWorkspaceLanguageDropdown from './JavaScriptCodingWorkspaceLanguageDropdown';
import JavaScriptCodingWorkspaceLanguageDropdown from './language/JavaScriptCodingWorkspaceLanguageDropdown';
type Props = Readonly<{
canViewPremiumContent: boolean;

View File

@ -19,12 +19,12 @@ import {
useCodingWorkspaceSelector,
} from '~/components/workspace/common/store/hooks';
import { updateFile } from '~/components/workspace/common/store/sandpack-slice';
import JavaScriptCodingWorkspaceCodeEditor from '~/components/workspace/javascript/editor/JavaScriptCodingWorkspaceCodeEditor';
import JavaScriptCodingWorkspaceSolution from '~/components/workspace/javascript/solution/JavaScriptCodingWorkspaceSolution';
import type { JavaScriptWorkspaceRenderProps } from './JavaScriptCodingWorkspace';
import JavaScriptCodingWorkspaceBottomBar from './JavaScriptCodingWorkspaceBottomBar';
import JavaScriptCodingWorkspaceCodeEditor from './JavaScriptCodingWorkspaceCodeEditor';
import JavaScriptCodingWorkspaceDescription from './JavaScriptCodingWorkspaceDescription';
import JavaScriptCodingWorkspaceSolution from './JavaScriptCodingWorkspaceSolution';
type Props = JavaScriptWorkspaceRenderProps;
type Mode = ComponentProps<typeof JavaScriptCodingWorkspaceBottomBar>['mode'];

View File

@ -16,12 +16,12 @@ import type { JavaScriptCodingWorkspaceStore } from '~/components/workspace/java
import SandpackObservability from '../common/sandpack/SandpackObservability';
import { useSandpackBundlerURL } from '../common/sandpack/useSandpackBundlerURL';
import { loadJavaScriptCodingWorkspaceWorkingLanguage } from './language/JavaScriptCodingWorkspaceWorkingLanguageStorage';
import { makeJavaScriptCodingWorkspaceStore } from './store/javascript-store';
import {
javaScriptCodingWorkspaceGetInitialFiles,
javascriptCodingWorkspaceGetInitialSandpackState,
} from './javascriptCodingWorkspaceGetInitialFiles';
import { loadJavaScriptCodingWorkspaceWorkingLanguage } from './JavaScriptCodingWorkspaceWorkingLanguageStorage';
import { makeJavaScriptCodingWorkspaceStore } from './store/javascript-store';
} from './utils/javascriptCodingWorkspaceGetInitialFiles';
type Props = Readonly<{
activeTabScrollIntoView?: boolean;

View File

@ -1,4 +1,4 @@
import type { CodingWorkspaceTabContents } from '../common/CodingWorkspaceContext';
import type { CodingWorkspaceTabContents } from '../common/context/CodingWorkspaceContext';
import type {
CodingWorkspaceTabAttemptType,
CodingWorkspaceTabCommunitySolutionType,

View File

@ -15,12 +15,11 @@ import MDXCodeBlock, {
} from '~/components/mdx/MDXCodeBlock';
import Button from '~/components/ui/Button';
import { themeBorderColor } from '~/components/ui/theme';
import JavaScriptConsoleLite from '~/components/workspace/common/console/JavaScriptConsoleLite';
import MonacoCodeEditor from '~/components/workspace/common/editor/MonacoCodeEditor';
import CodingWorkspaceDivider, {
CodingWorkspaceDividerWrapperClassname,
} from '../common/CodingWorkspaceDivider';
} from '~/components/workspace/common/CodingWorkspaceDivider';
import JavaScriptConsoleLite from '~/components/workspace/common/console/JavaScriptConsoleLite';
import MonacoCodeEditor from '~/components/workspace/common/editor/MonacoCodeEditor';
type Props = React.ComponentProps<typeof MDXCodeBlock>;
@ -139,7 +138,7 @@ export default function JavaScriptCodingQuizCodeEditor(props: Props) {
{isExecutionMode ? (
<PanelGroup direction="horizontal">
<Panel
className="size-full flex flex-col gap-2"
className="flex size-full flex-col gap-2"
defaultSize={60}
minSize={30}>
<MonacoCodeEditor
@ -229,7 +228,7 @@ export default function JavaScriptCodingQuizCodeEditor(props: Props) {
<Panel minSize={30}>
<div
className={clsx(
'size-full flex flex-col',
'flex size-full flex-col',
'overflow-hidden rounded-lg',
['border', themeBorderColor],
)}>

View File

@ -5,20 +5,19 @@ import { useIsMounted } from 'usehooks-ts';
import { useIntl } from '~/components/intl';
import Button from '~/components/ui/Button';
import type CodingWorkspaceSolutionBanner from '~/components/workspace/common/CodingWorkspaceSolutionBanner';
import MonacoCodeEditor from '~/components/workspace/common/editor/MonacoCodeEditor';
import type CodingWorkspaceSolutionBanner from '~/components/workspace/common/solution/CodingWorkspaceSolutionBanner';
import { updateFile } from '~/components/workspace/common/store/sandpack-slice';
import { onUpdateSolutionCode } from '~/components/workspace/common/store/solution-slice';
import { codingWorkspaceTabFileId } from '~/components/workspace/common/tabs/codingWorkspaceTabId';
import JavaScriptCodingWorkspaceCustomTestCasesBanner from './JavaScriptCodingWorkspaceCustomTestCasesBanner';
import JavaScriptCodingWorkspaceResetCodeButton from './JavaScriptCodingWorkspaceResetCodeButton';
import JavaScriptCodingWorkspaceSolutionBanner from './JavaScriptCodingWorkspaceSolutionBanner';
import JavaScriptCodingWorkspaceResetCodeButton from '~/components/workspace/javascript/editor/JavaScriptCodingWorkspaceResetCodeButton';
import useJavaScriptCodingWorkspaceTilesContext from '~/components/workspace/javascript/hooks/useJavaScriptCodingWorkspaceTilesContext';
import JavaScriptCodingWorkspaceSolutionBanner from '~/components/workspace/javascript/solution/JavaScriptCodingWorkspaceSolutionBanner';
import {
useJavaScriptCodingWorkspaceDispatch,
useJavaScriptCodingWorkspaceSelector,
} from './store/hooks';
import useJavaScriptCodingWorkspaceTilesContext from './useJavaScriptCodingWorkspaceTilesContext';
} from '~/components/workspace/javascript/store/hooks';
import JavaScriptCodingWorkspaceCustomTestCasesBanner from '~/components/workspace/javascript/tests/JavaScriptCodingWorkspaceCustomTestCasesBanner';
type BaseProps = Readonly<{
filePath: string;

View File

@ -3,11 +3,11 @@ import { useCallback } from 'react';
import CodingWorkspaceCodeEditorResetCodeButton from '~/components/workspace/common/CodingWorkspaceCodeEditorResetCodeButton';
import { resetJavaScriptCodingWorkspaceFile } from './store/actions';
import { resetJavaScriptCodingWorkspaceFile } from '../store/actions';
import {
useJavaScriptCodingWorkspaceDispatch,
useJavaScriptCodingWorkspaceSelector,
} from './store/hooks';
} from '../store/hooks';
export default function JavaScriptCodingWorkspaceResetCodeButton({
filePath,

View File

@ -1,7 +1,7 @@
import { useEffect } from 'react';
import { saveJavaScriptQuestionCodeLocally } from './JavaScriptCodingWorkspaceCodeStorage';
import { useJavaScriptCodingWorkspaceSelector } from './store/hooks';
import { saveJavaScriptQuestionCodeLocally } from '../JavaScriptCodingWorkspaceCodeStorage';
import { useJavaScriptCodingWorkspaceSelector } from '../store/hooks';
export default function useJavaScriptCodingWorkspaceSaveCodeLocally() {
const { language, question } = useJavaScriptCodingWorkspaceSelector(

View File

@ -1,6 +1,6 @@
import { useTilesContext } from '~/react-tiling/state/useTilesContext';
import type { JavaScriptCodingWorkspaceTabsType } from './JavaScriptCodingWorkspaceTypes';
import type { JavaScriptCodingWorkspaceTabsType } from '../JavaScriptCodingWorkspaceTypes';
export default function useJavaScriptCodingWorkspaceTilesContext() {
return useTilesContext<JavaScriptCodingWorkspaceTabsType>();

View File

@ -2,13 +2,13 @@ import type { QuestionCodingWorkingLanguage } from '~/components/interviews/ques
import QuestionLanguageIcon from '~/components/interviews/questions/metadata/QuestionLanguageIcon';
import { useIntl } from '~/components/intl';
import DropdownMenu from '~/components/ui/DropdownMenu';
import { useCodingWorkspaceUnsavedSolutionContext } from '~/components/workspace/common/CodingWorkspaceUnsavedSolutionContext';
import { useCodingWorkspaceUnsavedSolutionContext } from '~/components/workspace/common/context/CodingWorkspaceUnsavedSolutionContext';
import { changeJavaScriptCodingWorkspaceLanguage } from './store/actions';
import { changeJavaScriptCodingWorkspaceLanguage } from '../store/actions';
import {
useJavaScriptCodingWorkspaceDispatch,
useJavaScriptCodingWorkspaceSelector,
} from './store/hooks';
} from '../store/hooks';
type Props = Readonly<{
mode?: 'icon' | 'label';

View File

@ -4,7 +4,7 @@ import { forwardRef } from 'react';
import { useIntl } from '~/components/intl';
import Select from '~/components/ui/Select';
import type { QuestionCodingWorkingLanguage } from '../../interviews/questions/common/QuestionsTypes';
import type { QuestionCodingWorkingLanguage } from '../../../interviews/questions/common/QuestionsTypes';
const options: ReadonlyArray<{
label: string;

View File

@ -4,16 +4,16 @@ import { RiLayout2Line, RiLayoutGridLine } from 'react-icons/ri';
import { TbColumns3 } from 'react-icons/tb';
import { useIntl } from '~/components/intl';
import type { CodingWorkspaceLayoutItem } from '~/components/workspace/common/CodingWorkspaceLayoutDialog';
import CodingWorkspaceLayoutDialog from '~/components/workspace/common/CodingWorkspaceLayoutDialog';
import useJavaScriptCodingWorkspaceTilesContext from '~/components/workspace/javascript/hooks/useJavaScriptCodingWorkspaceTilesContext';
import { useJavaScriptCodingWorkspaceSelector } from '~/components/workspace/javascript/store/hooks';
import type { CodingWorkspaceLayoutItem } from '../common/CodingWorkspaceLayoutDialog';
import CodingWorkspaceLayoutDialog from '../common/CodingWorkspaceLayoutDialog';
import {
getJavaScriptCodingWorkspaceLayoutGrid,
getJavaScriptCodingWorkspaceLayoutThreeColumns,
getJavaScriptCodingWorkspaceLayoutTwoColumns,
} from './JavaScriptCodingWorkspaceLayouts';
import { useJavaScriptCodingWorkspaceSelector } from './store/hooks';
import useJavaScriptCodingWorkspaceTilesContext from './useJavaScriptCodingWorkspaceTilesContext';
type Props = Readonly<{
isOpen: boolean;

View File

@ -2,8 +2,8 @@ import { INTERVIEWS_JS_COMMUNITY_SOLUTIONS_IS_LIVE } from '~/data/FeatureFlags';
import type { TilesPanelConfig } from '~/react-tiling/types';
import { codingWorkspaceTabFileId } from '../common/tabs/codingWorkspaceTabId';
import type { JavaScriptCodingWorkspaceTabsType } from './JavaScriptCodingWorkspaceTypes';
import { codingWorkspaceTabFileId } from '../../common/tabs/codingWorkspaceTabId';
import type { JavaScriptCodingWorkspaceTabsType } from '../JavaScriptCodingWorkspaceTypes';
const descriptionTab = {
closeable: false,

View File

@ -16,9 +16,8 @@ import EmptyState from '~/components/ui/EmptyState';
import Text from '~/components/ui/Text';
import TextArea from '~/components/ui/TextArea';
import TextInput from '~/components/ui/TextInput';
import MonacoCodeEditor from '../common/editor/MonacoCodeEditor';
import JavaScriptCodingWorkspaceWorkingLanguageSelect from './JavaScriptCodingWorkspaceWorkingLanguageSelect';
import MonacoCodeEditor from '~/components/workspace/common/editor/MonacoCodeEditor';
import JavaScriptCodingWorkspaceWorkingLanguageSelect from '~/components/workspace/javascript/language/JavaScriptCodingWorkspaceWorkingLanguageSelect';
type Props = Readonly<{
metadata: QuestionMetadata;

View File

@ -1,8 +1,7 @@
import { trpc } from '~/hooks/trpc';
import type { QuestionMetadata } from '~/components/interviews/questions/common/QuestionsTypes';
import CodingWorkspaceCommunitySolutionList from '../common/CodingWorkspaceCommunitySolutionList';
import CodingWorkspaceCommunitySolutionList from '~/components/workspace/common/solution/CodingWorkspaceCommunitySolutionList';
type Props = Readonly<{
metadata: QuestionMetadata;

View File

@ -15,11 +15,10 @@ import Heading from '~/components/ui/Heading';
import Prose from '~/components/ui/Prose';
import Spinner from '~/components/ui/Spinner';
import Text from '~/components/ui/Text';
import JavaScriptCodingWorkspacePushCodeToEditorButton from '~/components/workspace/javascript/JavaScriptCodingWorkspacePushCodeToEditorButton';
import { staticLowerCase } from '~/utils/typescript/stringTransform';
import JavaScriptCodingWorkspacePushCodeToEditorButton from './JavaScriptCodingWorkspacePushCodeToEditorButton';
type Props = Readonly<{
solutionId: string;
}>;

View File

@ -19,12 +19,11 @@ import { textVariants } from '~/components/ui/Text';
import { themeBackgroundCardWhiteOnLightColor } from '~/components/ui/theme';
import CodingWorkspaceDescriptionAddOnItems from '~/components/workspace/common/CodingWorkspaceDescriptionAddOnItems';
import CodingWorkspaceMDXComponents from '~/components/workspace/common/CodingWorkspaceMDXComponents';
import JavaScriptCodingWorkspacePushCodeToEditorButton from '~/components/workspace/javascript/JavaScriptCodingWorkspacePushCodeToEditorButton';
import JavaScriptCodingWorkspaceLanguageDropdown from '~/components/workspace/javascript/language/JavaScriptCodingWorkspaceLanguageDropdown';
import { useQueryQuestionProgress } from '~/db/QuestionsProgressClient';
import JavaScriptCodingWorkspaceLanguageDropdown from './JavaScriptCodingWorkspaceLanguageDropdown';
import JavaScriptCodingWorkspacePushCodeToEditorButton from './JavaScriptCodingWorkspacePushCodeToEditorButton';
type Props = Readonly<{
canViewPremiumContent: boolean;
isMobile?: boolean;

View File

@ -1,17 +1,17 @@
import { type ComponentProps, useCallback } from 'react';
import { updateFile } from '~/components/workspace//common/store/sandpack-slice';
import CodingWorkspaceSolutionBanner from '~/components/workspace/common/CodingWorkspaceSolutionBanner';
import CodingWorkspaceSolutionBanner from '~/components/workspace/common/solution/CodingWorkspaceSolutionBanner';
import {
loadLocalJavaScriptQuestionCode,
saveJavaScriptQuestionCodeLocally,
} from './JavaScriptCodingWorkspaceCodeStorage';
import { submit } from './store/execution-slice';
} from '../JavaScriptCodingWorkspaceCodeStorage';
import { submit } from '../store/execution-slice';
import {
useJavaScriptCodingWorkspaceDispatch,
useJavaScriptCodingWorkspaceSelector,
} from './store/hooks';
} from '../store/hooks';
export default function JavaScriptCodingWorkspaceSolutionBanner({
isMobile = false,

View File

@ -1,5 +1,5 @@
import type { QuestionCodingWorkingLanguage } from '~/components/interviews/questions/common/QuestionsTypes';
import type { SetUnsavedChangesDialogType } from '~/components/workspace/common/CodingWorkspaceUnsavedSolutionContext';
import type { SetUnsavedChangesDialogType } from '~/components/workspace/common/context/CodingWorkspaceUnsavedSolutionContext';
import {
resetFile,
updateFile,

View File

@ -6,8 +6,8 @@ import type { QuestionJavaScript } from '~/components/interviews/questions/commo
import type { SandpackState } from '~/components/workspace/common/store/sandpack-slice';
import { initializeSandpack } from '~/components/workspace/common/store/sandpack-slice';
import * as InitialFiles from '../javascriptCodingWorkspaceGetInitialFiles';
import * as LanguageStorage from '../JavaScriptCodingWorkspaceWorkingLanguageStorage';
import * as LanguageStorage from '../language/JavaScriptCodingWorkspaceWorkingLanguageStorage';
import * as InitialFiles from '../utils/javascriptCodingWorkspaceGetInitialFiles';
import { javaScriptWorkspaceMiddleware } from './javascript-workspace-middleware';
import javascriptWorkspaceReducer, {
setLanguage,

View File

@ -2,8 +2,8 @@ import type { Middleware, MiddlewareAPI } from '@reduxjs/toolkit';
import { initializeSandpack } from '~/components/workspace/common/store/sandpack-slice';
import { javascriptCodingWorkspaceGetInitialSandpackState } from '../javascriptCodingWorkspaceGetInitialFiles';
import { saveJavaScriptCodingWorkspaceWorkingLanguage } from '../JavaScriptCodingWorkspaceWorkingLanguageStorage';
import { saveJavaScriptCodingWorkspaceWorkingLanguage } from '../language/JavaScriptCodingWorkspaceWorkingLanguageStorage';
import { javascriptCodingWorkspaceGetInitialSandpackState } from '../utils/javascriptCodingWorkspaceGetInitialFiles';
import type {
JavaScriptCodingWorkspaceDispatch,
JavaScriptCodingWorkspaceState,

View File

@ -17,9 +17,8 @@ import {
themeBorderColor,
themeDivideColor,
} from '~/components/ui/theme';
import JavaScriptCodingWorkspaceSubmissionMetadata from './JavaScriptCodingWorkspaceSubmissionMetadata';
import { useJavaScriptCodingWorkspaceSelector } from './store/hooks';
import { useJavaScriptCodingWorkspaceSelector } from '~/components/workspace/javascript/store/hooks';
import JavaScriptCodingWorkspaceSubmissionMetadata from '~/components/workspace/javascript/submission/JavaScriptCodingWorkspaceSubmissionMetadata';
type Props = Readonly<{
metadata: QuestionMetadata;

View File

@ -11,9 +11,9 @@ import Spinner from '~/components/ui/Spinner';
import Text from '~/components/ui/Text';
import { themeBackgroundCardWhiteOnLightColor } from '~/components/ui/theme';
import JavaScriptCodingWorkspacePushCodeToEditorButton from './JavaScriptCodingWorkspacePushCodeToEditorButton';
import JavaScriptCodingWorkspacePushCodeToEditorButton from '../JavaScriptCodingWorkspacePushCodeToEditorButton';
import { useJavaScriptCodingWorkspaceSelector } from '../store/hooks';
import JavaScriptCodingWorkspaceSubmissionMetadata from './JavaScriptCodingWorkspaceSubmissionMetadata';
import { useJavaScriptCodingWorkspaceSelector } from './store/hooks';
type Props = Readonly<{
submissionId: string;

View File

@ -1,16 +1,15 @@
import { useEffect } from 'react';
import type { QuestionMetadata } from '~/components/interviews/questions/common/QuestionsTypes';
import { codingWorkspaceTabFileId } from '~/components/workspace/common/tabs/codingWorkspaceTabId';
import TestsSection from '~/components/workspace/common/tests/TestsSection';
import useJavaScriptCodingWorkspaceTilesContext from '~/components/workspace/javascript/hooks/useJavaScriptCodingWorkspaceTilesContext';
import {
useJavaScriptCodingWorkspaceDispatch,
useJavaScriptCodingWorkspaceSelector,
} from '~/components/workspace/javascript/store/hooks';
import { focusOnTest } from '~/components/workspace/javascript/store/javascript-workspace-slice';
import { codingWorkspaceTabFileId } from '../common/tabs/codingWorkspaceTabId';
import TestsSection from '../common/tests/TestsSection';
import useJavaScriptCodingWorkspaceTilesContext from './useJavaScriptCodingWorkspaceTilesContext';
export default function JavaScriptCodingWorkspaceTestsRunTab({
metadata,
specPath,

View File

@ -6,6 +6,9 @@ import { trpc } from '~/hooks/trpc';
import { useToast } from '~/components/global/toasts/useToast';
import type { QuestionMetadata } from '~/components/interviews/questions/common/QuestionsTypes';
import { useIntl } from '~/components/intl';
import type { CodingWorkspaceTabFileType } from '~/components/workspace/common/tabs/codingWorkspaceTabId';
import TestsSection from '~/components/workspace/common/tests/TestsSection';
import useJavaScriptCodingWorkspaceTilesContext from '~/components/workspace/javascript/hooks/useJavaScriptCodingWorkspaceTilesContext';
import {
useJavaScriptCodingWorkspaceDispatch,
useJavaScriptCodingWorkspaceSelector,
@ -18,10 +21,6 @@ import {
} from '~/db/QuestionsProgressClient';
import { staticUpperCase } from '~/utils/typescript/stringTransform';
import type { CodingWorkspaceTabFileType } from '../common/tabs/codingWorkspaceTabId';
import TestsSection from '../common/tests/TestsSection';
import useJavaScriptCodingWorkspaceTilesContext from './useJavaScriptCodingWorkspaceTilesContext';
export default function JavaScriptCodingWorkspaceTestsSubmitTab({
metadata,
openBesideTabId,

View File

@ -3,10 +3,9 @@ import clsx from 'clsx';
import type { editor } from 'monaco-editor';
import { useEffect, useState } from 'react';
import JavaScriptCodingWorkspaceCodeEditor from '~/components/workspace/javascript/editor/JavaScriptCodingWorkspaceCodeEditor';
import { useJavaScriptCodingWorkspaceSelector } from '~/components/workspace/javascript/store/hooks';
import JavaScriptCodingWorkspaceCodeEditor from './JavaScriptCodingWorkspaceCodeEditor';
type Props = Readonly<{
specPath: string;
}>;

View File

@ -2,10 +2,10 @@ import type {
QuestionCodingWorkingLanguage,
QuestionJavaScript,
} from '~/components/interviews/questions/common/QuestionsTypes';
import { codingWorkspaceConvertFilesToSandpackBundlerFiles } from '~/components/workspace/common/codingWorkspaceConvertFiles';
import type { SandpackState } from '~/components/workspace/common/store/sandpack-slice';
import { codingWorkspaceConvertFilesToSandpackBundlerFiles } from '~/components/workspace/common/utils/codingWorkspaceConvertFiles';
import { loadLocalJavaScriptQuestionCode } from './JavaScriptCodingWorkspaceCodeStorage';
import { loadLocalJavaScriptQuestionCode } from '../JavaScriptCodingWorkspaceCodeStorage';
export function javaScriptCodingWorkspaceGetInitialFiles({
language,

View File

@ -13,13 +13,12 @@ import type {
import useQuestionsAutoMarkAsComplete from '~/components/interviews/questions/common/useQuestionsAutoMarkAsComplete';
import { questionUserInterfacePath } from '~/components/interviews/questions/content/user-interface/QuestionUserInterfaceRoutes';
import { useQuestionsListTypeCurrent } from '~/components/interviews/questions/listings/utils/useQuestionsListDataForType';
import { CodingWorkspaceUnsavedSolutionProvider } from '~/components/workspace/common/CodingWorkspaceUnsavedSolutionContext';
import useCodingWorkspaceSyncSandpackFiles from '~/components/workspace/common/useCodingWorkspaceSyncSandpackFiles';
import { CodingWorkspaceUnsavedSolutionProvider } from '~/components/workspace/common/context/CodingWorkspaceUnsavedSolutionContext';
import useCodingWorkspaceSyncSandpackFiles from '~/components/workspace/common/hooks/useCodingWorkspaceSyncSandpackFiles';
import { useI18nRouter } from '~/next-i18nostic/src';
import { TilesProvider } from '~/react-tiling/state/TilesProvider';
import { codingFilesShouldUseTypeScript } from '../common/codingFilesShouldUseTypeScript';
import useMonacoEditorModels from '../common/editor/useMonacoEditorModels';
import useMonacoLanguagesFetchTypeDeclarations from '../common/editor/useMonacoLanguagesFetchTypeDeclarations';
import useMonacoLanguagesJSONDefaults from '../common/editor/useMonacoLanguagesJSONDefaults';
@ -27,12 +26,13 @@ import useMonacoLanguagesLoadTSConfig from '../common/editor/useMonacoLanguagesL
import useMonacoLanguagesTypeScriptRunDiagnostics from '../common/editor/useMonacoLanguagesTypeScriptRunDiagnostics';
import useRestartSandpack from '../common/sandpack/useRestartSandpack';
import useSandpackModuleErrorRefreshBrowser from '../common/sandpack/useSandpackModuleErrorRefreshBrowser';
import { useUserInterfaceCodingWorkspaceSelector } from './store/hooks';
import { codingFilesShouldUseTypeScript } from '../common/utils/codingFilesShouldUseTypeScript';
import useUserInterfaceCodingWorkspaceSaveCodeLocally from './hooks/useUserInterfaceCodingWorkspaceSaveCodeLocally';
import {
getUserInterfaceCodingWorkspaceLayout,
getUserInterfaceCodingWorkspaceLayoutMobile,
} from './UserInterfaceCodingWorkspaceLayouts';
import useUserInterfaceCodingWorkspaceSaveCodeLocally from './useUserInterfaceCodingWorkspaceSaveCodeLocally';
} from './layout/UserInterfaceCodingWorkspaceLayouts';
import { useUserInterfaceCodingWorkspaceSelector } from './store/hooks';
export type UserInterfaceWorkspaceProps = Readonly<{
canViewPremiumContent: boolean;

View File

@ -10,30 +10,41 @@ import { useMediaQuery } from 'usehooks-ts';
import InterviewsPremiumBadge from '~/components/interviews/common/InterviewsPremiumBadge';
import { useIntl } from '~/components/intl';
import type { CodingWorkspaceTabContents } from '~/components/workspace/common/CodingWorkspaceContext';
import CodingWorkspaceDescriptionAddOnItems from '~/components/workspace/common/CodingWorkspaceDescriptionAddOnItems';
import CodingWorkspaceDivider, {
CodingWorkspaceDividerWrapperClassname,
} from '~/components/workspace/common/CodingWorkspaceDivider';
import CodingWorkspaceErrorBoundary from '~/components/workspace/common/CodingWorkspaceErrorBoundary';
import { codingWorkspaceExtractFileNameFromPath } from '~/components/workspace/common/codingWorkspaceExtractFileNameFromPath';
import { CodingWorkspaceTabIcons } from '~/components/workspace/common/CodingWorkspaceTabIcons';
import CodingWorkspaceConsole from '~/components/workspace/common/console/CodingWorkspaceConsole';
import type { CodingWorkspaceTabContents } from '~/components/workspace/common/context/CodingWorkspaceContext';
import CodingWorkspaceEditorShortcutsTab from '~/components/workspace/common/editor/CodingWorkspaceEditorShortcutsTab';
import useMonacoEditorRegisterEditorOpener from '~/components/workspace/common/editor/useMonacoEditorRegisterEditorOpener';
import useCodingWorkspaceCodeEditorCustomActions from '~/components/workspace/common/hooks/useCodingWorkspaceCodeEditorCustomActions';
import useTabletResponsiveLayout from '~/components/workspace/common/hooks/useTabletResponsiveLayout';
import {
codingWorkspaceTabAttemptId,
codingWorkspaceTabAttemptPattern,
codingWorkspaceTabFileId,
codingWorkspaceTabFilePattern,
} from '~/components/workspace/common/tabs/codingWorkspaceTabId';
import useCodingWorkspaceCodeEditorCustomActions from '~/components/workspace/common/useCodingWorkspaceCodeEditorCustomActions';
import useTabletResponsiveLayout from '~/components/workspace/common/useTabletResponsiveLayout';
import useUserInterfaceCodingWorkspaceTilesContext from '~/components/workspace/user-interface/useUserInterfaceCodingWorkspaceTilesContext';
import { codingWorkspaceExtractFileNameFromPath } from '~/components/workspace/common/utils/codingWorkspaceExtractFileNameFromPath';
import useUserInterfaceCodingWorkspaceTilesContext from '~/components/workspace/user-interface/hooks/useUserInterfaceCodingWorkspaceTilesContext';
import UserInterfaceCodingWorkspaceSaveCodeTab from '~/components/workspace/user-interface/save-code/UserInterfaceCodingWorkspaceSaveCodeTab';
import UserInterfaceCodingWorkspaceSavesList from '~/components/workspace/user-interface/save-code/UserInterfaceCodingWorkspaceSavesList';
import UserInterfaceCodingWorkspaceCommunitySolutionCreateTab from '~/components/workspace/user-interface/solution/UserInterfaceCodingWorkspaceCommunitySolutionCreateTab';
import UserInterfaceCodingWorkspaceCommunitySolutionList from '~/components/workspace/user-interface/solution/UserInterfaceCodingWorkspaceCommunitySolutionList';
import { TilesPanelRoot } from '~/react-tiling/components/TilesPanelRoot';
import { codingWorkspaceExplorerFilePathToIcon } from '../common/explorer/codingWorkspaceExplorerFilePathToIcon';
import UserInterfaceCodingWorkspaceCodeEditor from './editor/UserInterfaceCodingWorkspaceCodeEditor';
import {
getUserInterfaceCodingWorkspaceLayout,
getUserInterfaceCodingWorkspaceLayoutMobile,
} from './layout/UserInterfaceCodingWorkspaceLayouts';
import UserInterfaceCodingWorkspacePreview from './preview/UserInterfaceCodingWorkspacePreview';
import UserInterfaceCodingWorkspaceSolutionPreviewTab from './solution/UserInterfaceCodingWorkspaceSolutionPreviewTab';
import { replaceUserInterfaceCodeEditorContents } from './store/actions';
import {
useUserInterfaceCodingWorkspaceDispatch,
@ -41,19 +52,8 @@ import {
} from './store/hooks';
import type { UserInterfaceWorkspaceRenderProps } from './UserInterfaceCodingWorkspace';
import UserInterfaceCodingWorkspaceBottomBar from './UserInterfaceCodingWorkspaceBottomBar';
import UserInterfaceCodingWorkspaceCodeEditor from './UserInterfaceCodingWorkspaceCodeEditor';
import UserInterfaceCodingWorkspaceCommunitySolutionCreateTab from './UserInterfaceCodingWorkspaceCommunitySolutionCreateTab';
import UserInterfaceCodingWorkspaceCommunitySolutionList from './UserInterfaceCodingWorkspaceCommunitySolutionList';
import UserInterfaceCodingWorkspaceExplorer from './UserInterfaceCodingWorkspaceExplorer';
import {
getUserInterfaceCodingWorkspaceLayout,
getUserInterfaceCodingWorkspaceLayoutMobile,
} from './UserInterfaceCodingWorkspaceLayouts';
import UserInterfaceCodingWorkspaceNewTab from './UserInterfaceCodingWorkspaceNewTab';
import UserInterfaceCodingWorkspacePreview from './UserInterfaceCodingWorkspacePreview';
import UserInterfaceCodingWorkspaceSaveCodeTab from './UserInterfaceCodingWorkspaceSaveCodeTab';
import UserInterfaceCodingWorkspaceSavesList from './UserInterfaceCodingWorkspaceSavesList';
import UserInterfaceCodingWorkspaceSolutionPreviewTab from './UserInterfaceCodingWorkspaceSolutionPreviewTab';
import type {
UserInterfaceCodingWorkspacePredefinedTabsContents,
UserInterfaceCodingWorkspaceTabsType,

View File

@ -16,15 +16,15 @@ import QuestionNextQuestions from '~/components/interviews/questions/content/Que
import Divider from '~/components/ui/Divider';
import CodingWorkspaceBottomBar from '~/components/workspace/common/CodingWorkspaceBottomBar';
import { CodingWorkspaceBottomBarSettingsDropdownMenu } from '~/components/workspace/common/CodingWorkspaceBottomBarSettingsDropdownMenu';
import CodingWorkspaceMobileSolutionButton from '~/components/workspace/common/CodingWorkspaceMobileSolutionButton';
import CodingWorkspaceTimer from '~/components/workspace/common/CodingWorkspaceTimer';
import CodingWorkspaceMobileSolutionButton from '~/components/workspace/common/solution/CodingWorkspaceMobileSolutionButton';
import { useCodingWorkspaceDispatch } from '~/components/workspace/common/store/hooks';
import UserInterfaceCodingWorkspaceLayoutDialog from './layout/UserInterfaceCodingWorkspaceLayoutDialog';
import UserInterfaceCodingWorkspaceSaveButton from './save-code/UserInterfaceCodingWorkspaceSaveButton';
import { useUserInterfaceCodingWorkspaceSelector } from './store/hooks';
import { deleteLocalUserInterfaceQuestionCode } from './UserInterfaceCodingWorkspaceCodeStorage';
import UserInterfaceCodingWorkspaceFrameworkDropdown from './UserInterfaceCodingWorkspaceFrameworkDropdown';
import UserInterfaceCodingWorkspaceLayoutDialog from './UserInterfaceCodingWorkspaceLayoutDialog';
import UserInterfaceCodingWorkspaceSaveButton from './UserInterfaceCodingWorkspaceSaveButton';
type Mode = ComponentProps<typeof CodingWorkspaceMobileSolutionButton>['mode'];
type Props = Readonly<{

View File

@ -10,11 +10,14 @@ import Divider from '~/components/ui/Divider';
import Heading from '~/components/ui/Heading';
import Text, { textVariants } from '~/components/ui/Text';
import CodingWorkspaceDescriptionAddOnItems from '~/components/workspace/common/CodingWorkspaceDescriptionAddOnItems';
import { codingWorkspaceExtractFileNameFromPath } from '~/components/workspace/common/codingWorkspaceExtractFileNameFromPath';
import CodingWorkspaceMobileExperienceBanner from '~/components/workspace/common/CodingWorkspaceMobileExperienceBanner';
import { CodingWorkspaceTabIcons } from '~/components/workspace/common/CodingWorkspaceTabIcons';
import { codingWorkspaceTabFileId } from '~/components/workspace/common/tabs/codingWorkspaceTabId';
import { codingWorkspaceExtractFileNameFromPath } from '~/components/workspace/common/utils/codingWorkspaceExtractFileNameFromPath';
import UserInterfaceCodingWorkspaceCodeEditor from './editor/UserInterfaceCodingWorkspaceCodeEditor';
import UserInterfaceCodingWorkspaceCodeEditorMobile from './editor/UserInterfaceCodingWorkspaceCodeEditorMobile';
import UserInterfaceCodingWorkspacePreviewMobile from './preview/UserInterfaceCodingWorkspacePreviewMobile';
import { replaceUserInterfaceCodeEditorContents } from './store/actions';
import {
useUserInterfaceCodingWorkspaceDispatch,
@ -22,10 +25,7 @@ import {
} from './store/hooks';
import type { UserInterfaceWorkspaceRenderProps } from './UserInterfaceCodingWorkspace';
import UserInterfaceCodingWorkspaceBottomBar from './UserInterfaceCodingWorkspaceBottomBar';
import UserInterfaceCodingWorkspaceCodeEditor from './UserInterfaceCodingWorkspaceCodeEditor';
import UserInterfaceCodingWorkspaceCodeEditorMobile from './UserInterfaceCodingWorkspaceCodeEditorMobile';
import UserInterfaceCodingWorkspaceExplorer from './UserInterfaceCodingWorkspaceExplorer';
import UserInterfaceCodingWorkspacePreviewMobile from './UserInterfaceCodingWorkspacePreviewMobile';
import type { UserInterfaceCodingWorkspaceTabsType } from './UserInterfaceCodingWorkspaceTypes';
import UserInterfaceCodingWorkspaceWriteup from './UserInterfaceCodingWorkspaceWriteup';

View File

@ -7,19 +7,19 @@ import { INTERVIEWS_UI_COMMUNITY_SOLUTIONS_IS_LIVE } from '~/data/FeatureFlags';
import { useIntl } from '~/components/intl';
import Button from '~/components/ui/Button';
import Text from '~/components/ui/Text';
import { codingWorkspaceExtractFileNameFromPath } from '~/components/workspace/common/codingWorkspaceExtractFileNameFromPath';
import { codingWorkspaceExplorerFilePathToIcon } from '~/components/workspace/common/explorer/codingWorkspaceExplorerFilePathToIcon';
import {
codingWorkspaceTabFileId,
codingWorkspaceTabFilePattern,
} from '~/components/workspace/common/tabs/codingWorkspaceTabId';
import { codingWorkspaceExtractFileNameFromPath } from '~/components/workspace/common/utils/codingWorkspaceExtractFileNameFromPath';
import useUserInterfaceCodingWorkspaceTilesContext from './hooks/useUserInterfaceCodingWorkspaceTilesContext';
import { useUserInterfaceCodingWorkspaceSelector } from './store/hooks';
import type {
UserInterfaceCodingWorkspacePredefinedTabsContents,
UserInterfaceCodingWorkspacePredefinedTabsType,
} from './UserInterfaceCodingWorkspaceTypes';
import useUserInterfaceCodingWorkspaceTilesContext from './useUserInterfaceCodingWorkspaceTilesContext';
type UserInterfaceCodingNewTabTypeData =
| {

View File

@ -13,8 +13,8 @@ import type {
QuestionMetadata,
QuestionUserInterface,
} from '~/components/interviews/questions/common/QuestionsTypes';
import { codingWorkspaceConvertFilesToSandpackBundlerFiles } from '~/components/workspace/common/codingWorkspaceConvertFiles';
import { useSandpackBundlerURL } from '~/components/workspace/common/sandpack/useSandpackBundlerURL';
import { codingWorkspaceConvertFilesToSandpackBundlerFiles } from '~/components/workspace/common/utils/codingWorkspaceConvertFiles';
import type { UserInterfaceWorkspaceRenderProps } from '~/components/workspace/user-interface/UserInterfaceCodingWorkspace';
import UserInterfaceCodingWorkspace from '~/components/workspace/user-interface/UserInterfaceCodingWorkspace';
import { loadLocalUserInterfaceQuestionCode } from '~/components/workspace/user-interface/UserInterfaceCodingWorkspaceCodeStorage';

View File

@ -1,4 +1,4 @@
import type { CodingWorkspaceTabContents } from '../common/CodingWorkspaceContext';
import type { CodingWorkspaceTabContents } from '../common/context/CodingWorkspaceContext';
import type {
CodingWorkspaceTabAttemptType,
CodingWorkspaceTabFileType,

View File

@ -26,9 +26,9 @@ import CodingWorkspaceQuestionContentProse from '~/components/workspace/common/C
import { useQueryQuestionProgress } from '~/db/QuestionsProgressClient';
import useUserInterfaceCodingWorkspaceTilesContext from './hooks/useUserInterfaceCodingWorkspaceTilesContext';
import UserInterfaceCodingWorkspaceSolutionFilesPreview from './solution/UserInterfaceCodingWorkspaceSolutionFilesPreview';
import UserInterfaceCodingWorkspaceFrameworkDropdown from './UserInterfaceCodingWorkspaceFrameworkDropdown';
import UserInterfaceCodingWorkspaceSolutionFilesPreview from './UserInterfaceCodingWorkspaceSolutionFilesPreview';
import useUserInterfaceCodingWorkspaceTilesContext from './useUserInterfaceCodingWorkspaceTilesContext';
type BaseProps = Readonly<{
canViewPremiumContent: boolean;

View File

@ -4,8 +4,8 @@ import type { ComponentProps } from 'react';
import { useCallback, useState } from 'react';
import CodingWorkspaceCodeEditorResetCodeButton from '~/components/workspace/common/CodingWorkspaceCodeEditorResetCodeButton';
import CodingWorkspaceSolutionBanner from '~/components/workspace/common/CodingWorkspaceSolutionBanner';
import MonacoCodeEditor from '~/components/workspace/common/editor/MonacoCodeEditor';
import CodingWorkspaceSolutionBanner from '~/components/workspace/common/solution/CodingWorkspaceSolutionBanner';
import {
updateActiveFile,
updateFile,
@ -15,16 +15,16 @@ import {
resetHasUnsavedSolutionChanges,
} from '~/components/workspace/common/store/solution-slice';
import { resetUserInterfaceCodingWorkspaceFile } from './store/actions';
import UserInterfaceCodingWorkspaceSaveDialog from '../save-code/UserInterfaceCodingWorkspaceSaveDialog';
import { resetUserInterfaceCodingWorkspaceFile } from '../store/actions';
import {
useUserInterfaceCodingWorkspaceDispatch,
useUserInterfaceCodingWorkspaceSelector,
} from './store/hooks';
} from '../store/hooks';
import {
loadLocalUserInterfaceQuestionCode,
saveUserInterfaceQuestionCodeLocally,
} from './UserInterfaceCodingWorkspaceCodeStorage';
import UserInterfaceCodingWorkspaceSaveDialog from './UserInterfaceCodingWorkspaceSaveDialog';
} from '../UserInterfaceCodingWorkspaceCodeStorage';
type BaseProps = Readonly<{
filePath: string;

View File

@ -1,7 +1,7 @@
import CodingWorkspaceErrorBoundary from '~/components/workspace/common/CodingWorkspaceErrorBoundary';
import UserInterfaceCodingWorkspaceTabsSection from './UserInterfaceCodingWorkspaceTabsSection';
import type { UserInterfaceCodingWorkspaceTabsType } from './UserInterfaceCodingWorkspaceTypes';
import UserInterfaceCodingWorkspaceTabsSection from '../UserInterfaceCodingWorkspaceTabsSection';
import type { UserInterfaceCodingWorkspaceTabsType } from '../UserInterfaceCodingWorkspaceTypes';
type Props = Readonly<{
activeTabId: string;

View File

@ -2,8 +2,8 @@ import { useEffect } from 'react';
import type { QuestionUserInterface } from '~/components/interviews/questions/common/QuestionsTypes';
import { useUserInterfaceCodingWorkspaceSelector } from './store/hooks';
import { saveUserInterfaceQuestionCodeLocally } from './UserInterfaceCodingWorkspaceCodeStorage';
import { useUserInterfaceCodingWorkspaceSelector } from '../store/hooks';
import { saveUserInterfaceQuestionCodeLocally } from '../UserInterfaceCodingWorkspaceCodeStorage';
export default function useUserInterfaceCodingWorkspaceSaveCodeLocally(
question: QuestionUserInterface,

View File

@ -1,6 +1,6 @@
import { useTilesContext } from '~/react-tiling/state/useTilesContext';
import type { UserInterfaceCodingWorkspaceTabsType } from './UserInterfaceCodingWorkspaceTypes';
import type { UserInterfaceCodingWorkspaceTabsType } from '../UserInterfaceCodingWorkspaceTypes';
export default function useUserInterfaceCodingWorkspaceTilesContext() {
return useTilesContext<UserInterfaceCodingWorkspaceTabsType>();

View File

@ -7,12 +7,12 @@ import { useIntl } from '~/components/intl';
import type { CodingWorkspaceLayoutItem } from '~/components/workspace/common/CodingWorkspaceLayoutDialog';
import CodingWorkspaceLayoutDialog from '~/components/workspace/common/CodingWorkspaceLayoutDialog';
import { useUserInterfaceCodingWorkspaceSelector } from './store/hooks';
import useUserInterfaceCodingWorkspaceTilesContext from '../hooks/useUserInterfaceCodingWorkspaceTilesContext';
import { useUserInterfaceCodingWorkspaceSelector } from '../store/hooks';
import {
getUserInterfaceCodingWorkspaceLayout,
getUserInterfaceCodingWorkspaceLayoutAdvanced,
} from './UserInterfaceCodingWorkspaceLayouts';
import useUserInterfaceCodingWorkspaceTilesContext from './useUserInterfaceCodingWorkspaceTilesContext';
type Props = Readonly<{
isOpen: boolean;

View File

@ -1,7 +1,7 @@
import type { TilesPanelConfig } from '~/react-tiling/types';
import { codingWorkspaceTabFileId } from '../common/tabs/codingWorkspaceTabId';
import type { UserInterfaceCodingWorkspaceTabsType } from './UserInterfaceCodingWorkspaceTypes';
import { codingWorkspaceTabFileId } from '../../common/tabs/codingWorkspaceTabId';
import type { UserInterfaceCodingWorkspaceTabsType } from '../UserInterfaceCodingWorkspaceTypes';
export function getUserInterfaceCodingWorkspaceLayout(
activeFile: string,

View File

@ -2,11 +2,11 @@ import { useState } from 'react';
import { useIntl } from '~/components/intl';
import CodingWorkspaceErrorBoundary from '../common/CodingWorkspaceErrorBoundary';
import CodingWorkspaceConsole from '../common/console/CodingWorkspaceConsole';
import CodingWorkspaceErrorBoundary from '../../common/CodingWorkspaceErrorBoundary';
import CodingWorkspaceConsole from '../../common/console/CodingWorkspaceConsole';
import UserInterfaceCodingWorkspaceTabsSection from '../UserInterfaceCodingWorkspaceTabsSection';
import type { UserInterfaceCodingWorkspaceTabsType } from '../UserInterfaceCodingWorkspaceTypes';
import UserInterfaceCodingWorkspacePreview from './UserInterfaceCodingWorkspacePreview';
import UserInterfaceCodingWorkspaceTabsSection from './UserInterfaceCodingWorkspaceTabsSection';
import type { UserInterfaceCodingWorkspaceTabsType } from './UserInterfaceCodingWorkspaceTypes';
export default function UserInterfaceCodingWorkspacePreviewMobile() {
const intl = useIntl();

View File

@ -14,7 +14,7 @@ import { resetHasUnsavedSolutionChanges } from '~/components/workspace/common/st
import {
useUserInterfaceCodingWorkspaceDispatch,
useUserInterfaceCodingWorkspaceSelector,
} from './store/hooks';
} from '../store/hooks';
import UserInterfaceCodingWorkspaceSaveDialog from './UserInterfaceCodingWorkspaceSaveDialog';
type Props = Readonly<{

View File

@ -9,11 +9,10 @@ import { useIntl } from '~/components/intl';
import ScrollArea from '~/components/ui/ScrollArea';
import Spinner from '~/components/ui/Spinner';
import { themeBackgroundCardWhiteOnLightColor } from '~/components/ui/theme';
import { useUserInterfaceCodingWorkspaceSelector } from './store/hooks';
import UserInterfaceCodingWorkspaceSaveMetadata from './UserInterfaceCodingWorkspaceSaveMetadata';
import UserInterfaceCodingWorkspaceSavesListItemActions from './UserInterfaceCodingWorkspaceSavesListItemActions';
import UserInterfaceCodingWorkspaceSolutionFilesPreview from './UserInterfaceCodingWorkspaceSolutionFilesPreview';
import UserInterfaceCodingWorkspaceSaveMetadata from '~/components/workspace/user-interface/save-code/UserInterfaceCodingWorkspaceSaveMetadata';
import UserInterfaceCodingWorkspaceSavesListItemActions from '~/components/workspace/user-interface/save-code/UserInterfaceCodingWorkspaceSavesListItemActions';
import UserInterfaceCodingWorkspaceSolutionFilesPreview from '~/components/workspace/user-interface/solution/UserInterfaceCodingWorkspaceSolutionFilesPreview';
import { useUserInterfaceCodingWorkspaceSelector } from '~/components/workspace/user-interface/store/hooks';
type Props = Readonly<{
onOpenSolutionInWorkspace: ComponentProps<

View File

@ -17,10 +17,9 @@ import {
themeBorderColor,
themeDivideColor,
} from '~/components/ui/theme';
import { useUserInterfaceCodingWorkspaceSelector } from './store/hooks';
import UserInterfaceCodingWorkspaceSaveMetadata from './UserInterfaceCodingWorkspaceSaveMetadata';
import UserInterfaceCodingWorkspaceSavesListItemActions from './UserInterfaceCodingWorkspaceSavesListItemActions';
import UserInterfaceCodingWorkspaceSaveMetadata from '~/components/workspace/user-interface/save-code/UserInterfaceCodingWorkspaceSaveMetadata';
import UserInterfaceCodingWorkspaceSavesListItemActions from '~/components/workspace/user-interface/save-code/UserInterfaceCodingWorkspaceSavesListItemActions';
import { useUserInterfaceCodingWorkspaceSelector } from '~/components/workspace/user-interface/store/hooks';
type Props = Readonly<{
metadata: QuestionMetadata;

View File

@ -10,9 +10,8 @@ import Button from '~/components/ui/Button';
import Dialog from '~/components/ui/Dialog';
import DropdownMenu from '~/components/ui/DropdownMenu';
import TextInput from '~/components/ui/TextInput';
import useUserInterfaceCodingWorkspaceTilesContext from '~/components/workspace/user-interface/useUserInterfaceCodingWorkspaceTilesContext';
import { codingWorkspaceTabAttemptId } from '../common/tabs/codingWorkspaceTabId';
import { codingWorkspaceTabAttemptId } from '~/components/workspace/common/tabs/codingWorkspaceTabId';
import useUserInterfaceCodingWorkspaceTilesContext from '~/components/workspace/user-interface/hooks/useUserInterfaceCodingWorkspaceTilesContext';
type Props = Readonly<{
saveId: string;

View File

@ -15,11 +15,10 @@ import Button from '~/components/ui/Button';
import EmptyState from '~/components/ui/EmptyState';
import TextArea from '~/components/ui/TextArea';
import TextInput from '~/components/ui/TextInput';
import { useUserInterfaceCodingWorkspaceSelector } from '~/components/workspace/user-interface/store/hooks';
import { staticUpperCase } from '~/utils/typescript/stringTransform';
import { useUserInterfaceCodingWorkspaceSelector } from './store/hooks';
type Props = Readonly<{
framework: QuestionFramework;
metadata: QuestionMetadata;

View File

@ -1,8 +1,7 @@
import { trpc } from '~/hooks/trpc';
import type { QuestionMetadata } from '~/components/interviews/questions/common/QuestionsTypes';
import CodingWorkspaceCommunitySolutionList from '../common/CodingWorkspaceCommunitySolutionList';
import CodingWorkspaceCommunitySolutionList from '~/components/workspace/common/solution/CodingWorkspaceCommunitySolutionList';
type Props = Readonly<{
metadata: QuestionMetadata;

View File

@ -7,10 +7,10 @@ import { useIntl } from '~/components/intl';
import MDXCodeBlock from '~/components/mdx/MDXCodeBlock';
import Prose from '~/components/ui/Prose';
import Text from '~/components/ui/Text';
import { codingWorkspaceExtractFileNameFromPath } from '~/components/workspace/common/codingWorkspaceExtractFileNameFromPath';
import getLanguageFromFilePath from '~/components/workspace/common/editor/getLanguageFromFilePath';
import { codingWorkspaceExtractFileNameFromPath } from '~/components/workspace/common/utils/codingWorkspaceExtractFileNameFromPath';
import UserInterfaceCodingWorkspacePushCodeToEditorButton from './UserInterfaceCodingWorkspacePushCodeToEditorButton';
import UserInterfaceCodingWorkspacePushCodeToEditorButton from '../UserInterfaceCodingWorkspacePushCodeToEditorButton';
type Props = Readonly<{
files: SandpackFiles;

View File

@ -11,8 +11,8 @@ import Banner from '~/components/ui/Banner';
import SandpackObservability from '~/components/workspace/common/sandpack/SandpackObservability';
import { useSandpackBundlerURL } from '~/components/workspace/common/sandpack/useSandpackBundlerURL';
import UserInterfaceCodingWorkspacePreview from './UserInterfaceCodingWorkspacePreview';
import useUserInterfaceCodingWorkspaceTilesContext from './useUserInterfaceCodingWorkspaceTilesContext';
import useUserInterfaceCodingWorkspaceTilesContext from '../hooks/useUserInterfaceCodingWorkspaceTilesContext';
import UserInterfaceCodingWorkspacePreview from '../preview/UserInterfaceCodingWorkspacePreview';
type Props = Readonly<{
bundle: QuestionUserInterfaceBundle;

View File

@ -1,18 +1,18 @@
import type { SandpackFiles } from '@codesandbox/sandpack-react';
import {
codingWorkspaceConvertFilesToSandpackBundlerFiles,
codingWorkspaceConvertFilesToSandpackFiles,
} from '~/components/workspace/common/codingWorkspaceConvertFiles';
import {
replaceCurrentFileState,
updateFile,
} from '~/components/workspace/common/store/sandpack-slice';
import { codingWorkspaceTabFileId } from '~/components/workspace/common/tabs/codingWorkspaceTabId';
import {
codingWorkspaceConvertFilesToSandpackBundlerFiles,
codingWorkspaceConvertFilesToSandpackFiles,
} from '~/components/workspace/common/utils/codingWorkspaceConvertFiles';
import { saveUserInterfaceQuestionCodeLocally } from '../UserInterfaceCodingWorkspaceCodeStorage';
import userInterfaceCodingWorkspaceNormalizeFilePaths from '../userInterfaceCodingWorkspaceNormalizeSolutionFilePaths';
import type { UserInterfaceCodingWorkspaceTabsType } from '../UserInterfaceCodingWorkspaceTypes';
import userInterfaceCodingWorkspaceNormalizeFilePaths from '../utils/userInterfaceCodingWorkspaceNormalizeSolutionFilePaths';
import type { UserInterfaceCodingWorkspaceThunk } from './user-interface-store';
export const resetUserInterfaceCodingWorkspaceFile =

View File

@ -2,8 +2,8 @@ import type { SandpackFiles } from '@codesandbox/sandpack-react';
import { codingWorkspaceTabFileId } from '~/components/workspace/common/tabs/codingWorkspaceTabId';
import type { UserInterfaceCodingWorkspaceTabsType } from '../UserInterfaceCodingWorkspaceTypes';
import userInterfaceCodingWorkspaceNormalizeFilePaths from './userInterfaceCodingWorkspaceNormalizeSolutionFilePaths';
import type { UserInterfaceCodingWorkspaceTabsType } from './UserInterfaceCodingWorkspaceTypes';
export type ResetUserInterfaceCodeEditorFilesProps = Readonly<{
changeActiveFile: (tabId: UserInterfaceCodingWorkspaceTabsType) => void;