[web] workspace: restructure the workspace directories (#1677)
This commit is contained in:
parent
a4a23e3e47
commit
961f01b453
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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 }>;
|
||||
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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 =
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
@ -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,
|
||||
|
|
@ -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(
|
||||
|
|
@ -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;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
import type { Mock } from 'vitest';
|
||||
|
||||
import { codingWorkspaceConvertFilesToSandpackBundlerFiles } from '../codingWorkspaceConvertFiles';
|
||||
import { codingWorkspaceConvertFilesToSandpackBundlerFiles } from '../utils/codingWorkspaceConvertFiles';
|
||||
import reducer, {
|
||||
initializeSandpack,
|
||||
replaceCurrentFileState,
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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>;
|
||||
|
|
|
|||
|
|
@ -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'];
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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'];
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import type { CodingWorkspaceTabContents } from '../common/CodingWorkspaceContext';
|
||||
import type { CodingWorkspaceTabContents } from '../common/context/CodingWorkspaceContext';
|
||||
import type {
|
||||
CodingWorkspaceTabAttemptType,
|
||||
CodingWorkspaceTabCommunitySolutionType,
|
||||
|
|
|
|||
|
|
@ -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],
|
||||
)}>
|
||||
|
|
@ -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;
|
||||
|
|
@ -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,
|
||||
|
|
@ -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(
|
||||
|
|
@ -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>();
|
||||
|
|
@ -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';
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
|
|
@ -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,
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
}>;
|
||||
|
|
@ -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;
|
||||
|
|
@ -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,
|
||||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
|
|
@ -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,
|
||||
|
|
@ -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,
|
||||
|
|
@ -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;
|
||||
}>;
|
||||
|
|
@ -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,
|
||||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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<{
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
||||
|
|
|
|||
|
|
@ -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 =
|
||||
| {
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import type { CodingWorkspaceTabContents } from '../common/CodingWorkspaceContext';
|
||||
import type { CodingWorkspaceTabContents } from '../common/context/CodingWorkspaceContext';
|
||||
import type {
|
||||
CodingWorkspaceTabAttemptType,
|
||||
CodingWorkspaceTabFileType,
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
|
|
@ -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,
|
||||
|
|
@ -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>();
|
||||
|
|
@ -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;
|
||||
|
|
@ -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,
|
||||
|
|
@ -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();
|
||||
|
|
@ -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<{
|
||||
|
|
@ -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<
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
|
|
@ -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 =
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
Loading…
Reference in New Issue