diff --git a/CHANGELOG.md b/CHANGELOG.md
index 186930f33..4dd27b626 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
## Unreleased
+## Changed
+
+- Deleting unused strings and components (#1225)
+
## Fixed
- Styling issue preventing scrolling in the sidebar (#1216)
diff --git a/public/translations/en.json b/public/translations/en.json
index 0cfeb181d..545ae076a 100644
--- a/public/translations/en.json
+++ b/public/translations/en.json
@@ -58,13 +58,6 @@
"downloadHint": "Download your project files so you can use them offline and in a different code editor.",
"downloadButton": "Download project"
},
- "footer": {
- "accessibility": "Accessibility",
- "charityNameAndNumber": "Raspberry Pi Foundation UK registered charity 1129409",
- "cookies": "Cookies",
- "privacy": "Privacy",
- "safeguarding": "Safeguarding"
- },
"projectName": {
"label": "Project name",
"newProject": "New Project"
@@ -73,12 +66,10 @@
"download": "Download",
"downloadFileNameDefault": "my {{project_type}} project",
"editorLogoAltText": "Editor logo",
- "projects": "Your projects",
"renameProject": "Edit project name",
"renameSave": "Save project name",
"save": "Save",
- "loginToSave": "Log in to save",
- "settings": "Settings"
+ "loginToSave": "Log in to save"
},
"imagePanel": {
"gallery": "Image Gallery"
@@ -137,7 +128,6 @@
"notifications": {
"close": "close",
"loginPrompt": "To save this project and access it later, don't forget to log in or sign up!",
- "projectRemixed": "Your remixed project has been saved",
"projectRenamed": "You have renamed your project.",
"projectSaved": "Your project has been saved",
"savePrompt": "Save this project to access it later under \"Your projects\"."
@@ -178,59 +168,9 @@
"buttonSplitTitle": "Split view"
},
"project": {
- "accessDeniedWithAuthModal": {
- "embedded": {
- "text": "Visit the Projects site for cool project ideas"
- },
- "heading": "You can't access this project",
- "newProject": "Create a new code project",
- "projectsSiteLinkText": "Explore Projects site",
- "text": "Visit the Projects site for cool project ideas or start coding in a new project."
- },
"loading": "Loading",
- "notFoundModal": {
- "embedded": {
- "text": "Visit the Projects site for cool project ideas"
- },
- "heading": "This project does not exist",
- "newProject": "Start new code project",
- "projectsSiteLinkText": "Explore Projects site",
- "text": "You can start coding in a new project, or visit the Projects site for cool project ideas."
- },
"untitled": "Untitled project"
},
- "projectHeader": {
- "subTitle": "Code Editor",
- "title": "Your projects",
- "text": "Select a project to continue coding, view, or edit it."
- },
- "projectList": {
- "delete": "Delete",
- "deleteLabel": "Delete project",
- "empty": "No projects created yet",
- "label": "Open project menu",
- "loading": "Loading",
- "loadingFailed": "Failed to load projects",
- "newProject": "Create a new project",
- "pagination": {
- "first": "First page",
- "last": "Last page",
- "next": "Next page",
- "previous": "Previous page",
- "more": "Load more projects"
- },
- "rename": "Rename",
- "renameLabel": "Rename project",
- "renameProjectModal": {
- "cancel": "Do not save",
- "heading": "Rename project",
- "inputLabel": "Change the name of your project",
- "save": "Save"
- },
- "updated": "Edited",
- "python_type": "Python",
- "html_type": "HTML"
- },
"projectTypes": {
"html": "HTML/CSS",
"python": "Python"
diff --git a/public/translations/xx-XX.json b/public/translations/xx-XX.json
index 3613cacf0..8fff1bf99 100644
--- a/public/translations/xx-XX.json
+++ b/public/translations/xx-XX.json
@@ -58,13 +58,6 @@
"downloadHint": "Laden Sie Ihre Projektdateien herunter, damit Sie sie offline und in einem anderen Code-Editor verwenden können.",
"downloadButton": "Projekt herunterladen"
},
- "footer": {
- "accessibility": "Barrierefreiheit",
- "charityNameAndNumber": "Raspberry Pi Foundation UK eingetragene Wohltätigkeitsorganisation 1129409",
- "cookies": "Cookies",
- "privacy": "Datenschutz",
- "safeguarding": "Kinderschutz"
- },
"projectName": {
"label": "Projektname",
"newProject": "Neues Projekt"
@@ -73,12 +66,10 @@
"download": "Herunterladen",
"downloadFileNameDefault": "mein {{project_type}} Projekt",
"editorLogoAltText": "Editor-Logo",
- "projects": "Ihre Projekte",
"renameProject": "Projektnamen bearbeiten",
"renameSave": "Projektnamen speichern",
"save": "Speichern",
- "loginToSave": "Zum Speichern anmelden",
- "settings": "Einstellungen"
+ "loginToSave": "Zum Speichern anmelden"
},
"imagePanel": {
"gallery": "Bildergalerie"
@@ -137,7 +128,6 @@
"notifications": {
"close": "schließen",
"loginPrompt": "Um dieses Projekt zu speichern und später darauf zuzugreifen, vergessen Sie nicht, sich anzumelden oder zu registrieren!",
- "projectRemixed": "Ihr neu gemischtes Projekt wurde gespeichert",
"projectRenamed": "Sie haben Ihr Projekt umbenannt.",
"projectSaved": "Ihr Projekt wurde gespeichert",
"savePrompt": "Speichern Sie dieses Projekt, um später unter „Ihre Projekte“ darauf zuzugreifen."
@@ -178,59 +168,9 @@
"buttonSplitTitle": "Geteilte Ansicht"
},
"project": {
- "accessDeniedWithAuthModal": {
- "embedded": {
- "text": "Besuchen Sie die Projektseite für tolle Projektideen"
- },
- "heading": "Sie können auf dieses Projekt nicht zugreifen",
- "newProject": "Ein neues Code-Projekt erstellen",
- "projectsSiteLinkText": "Projektseite erkunden",
- "text": "Besuchen Sie die Projektseite für tolle Projektideen oder beginnen Sie mit dem Programmieren in einem neuen Projekt."
- },
"loading": "Wird geladen",
- "notFoundModal": {
- "embedded": {
- "text": "Besuchen Sie die Projektseite für tolle Projektideen"
- },
- "heading": "Dieses Projekt existiert nicht",
- "newProject": "Neues Code-Projekt starten",
- "projectsSiteLinkText": "Projektseite erkunden",
- "text": "Sie können mit dem Programmieren in einem neuen Projekt beginnen oder die Projektseite für tolle Projektideen besuchen."
- },
"untitled": "Unbenanntes Projekt"
},
- "projectHeader": {
- "subTitle": "Code-Editor",
- "title": "Ihre Projekte",
- "text": "Wählen Sie ein Projekt aus, um mit dem Programmieren fortzufahren, es anzuzeigen oder zu bearbeiten."
- },
- "projectList": {
- "delete": "Löschen",
- "deleteLabel": "Projekt löschen",
- "empty": "Noch keine Projekte erstellt",
- "label": "Projektmenü öffnen",
- "loading": "Wird geladen",
- "loadingFailed": "Fehler beim Laden der Projekte",
- "newProject": "Neues Projekt erstellen",
- "pagination": {
- "first": "Erste Seite",
- "last": "Letzte Seite",
- "next": "Nächste Seite",
- "previous": "Vorherige Seite",
- "more": "Weitere Projekte laden"
- },
- "rename": "Umbenennen",
- "renameLabel": "Projekt umbenennen",
- "renameProjectModal": {
- "cancel": "Nicht speichern",
- "heading": "Projekt umbenennen",
- "inputLabel": "Ändern Sie den Namen Ihres Projekts",
- "save": "Speichern"
- },
- "updated": "Bearbeitet",
- "python_type": "Python",
- "html_type": "HTML"
- },
"projectTypes": {
"html": "HTML/CSS",
"python": "Python"
diff --git a/src/components/Modals/AccessDeniedWithAuthModal.jsx b/src/components/Modals/AccessDeniedWithAuthModal.jsx
deleted file mode 100644
index 11ad413eb..000000000
--- a/src/components/Modals/AccessDeniedWithAuthModal.jsx
+++ /dev/null
@@ -1,77 +0,0 @@
-import React from "react";
-import { useDispatch, useSelector } from "react-redux";
-import { useTranslation } from "react-i18next";
-
-import Button from "../Button/Button";
-import "../../assets/stylesheets/Modal.scss";
-import {
- closeAccessDeniedWithAuthModal,
- syncProject,
-} from "../../redux/EditorSlice";
-import { defaultPythonProject } from "../../utils/defaultProjects";
-import GeneralModal from "./GeneralModal";
-
-const AccessDeniedWithAuthModal = (props) => {
- const {
- buttons = null,
- text = null,
- withCloseButton = true,
- withClickToClose = true,
- } = props;
- const dispatch = useDispatch();
- const { t } = useTranslation();
- const user = useSelector((state) => state.auth.user);
-
- const isModalOpen = useSelector(
- (state) => state.editor.accessDeniedWithAuthModalShowing,
- );
-
- const closeModal = () => dispatch(closeAccessDeniedWithAuthModal());
-
- const createNewProject = async () => {
- dispatch(
- syncProject("save")({
- project: defaultPythonProject,
- accessToken: user.access_token,
- autosave: false,
- }),
- );
- };
-
- return (
- ,
-
- {t("project.accessDeniedWithAuthModal.projectsSiteLinkText")}
- ,
- ]
- }
- defaultCallback={createNewProject}
- />
- );
-};
-
-export default AccessDeniedWithAuthModal;
diff --git a/src/components/Modals/AccessDeniedWithAuthModal.test.js b/src/components/Modals/AccessDeniedWithAuthModal.test.js
deleted file mode 100644
index b4deeedfe..000000000
--- a/src/components/Modals/AccessDeniedWithAuthModal.test.js
+++ /dev/null
@@ -1,69 +0,0 @@
-import React from "react";
-import { fireEvent, render, screen, waitFor } from "@testing-library/react";
-import { Provider } from "react-redux";
-import configureStore from "redux-mock-store";
-import AccessDeniedWithAuthModal from "./AccessDeniedWithAuthModal";
-import { syncProject } from "../../redux/EditorSlice";
-import { defaultPythonProject } from "../../utils/defaultProjects";
-
-jest.mock("../../redux/EditorSlice", () => ({
- ...jest.requireActual("../../redux/EditorSlice"),
- syncProject: jest.fn((_) => jest.fn()),
-}));
-
-const user = {
- access_token: "39a09671-be55-4847-baf5-8919a0c24a25",
- profile: {
- user: "b48e70e2-d9ed-4a59-aee5-fc7cf09dbfaf",
- },
-};
-
-const middlewares = [];
-const mockStore = configureStore(middlewares);
-
-describe("When accessDeniedWithAuthModalShowing is true", () => {
- let store;
-
- beforeEach(() => {
- const initialState = {
- editor: {
- accessDeniedWithAuthModalShowing: true,
- },
- auth: {
- user: user,
- },
- };
- store = mockStore(initialState);
- render(
-
-
- ,
- );
- });
-
- test("Modal rendered", () => {
- expect(
- screen.queryByText("project.accessDeniedWithAuthModal.heading"),
- ).toBeInTheDocument();
- });
-
- test("Clicking new project creates a new project", async () => {
- const newProjectLink = screen.queryByText(
- "project.accessDeniedWithAuthModal.newProject",
- );
- const saveAction = { type: "SAVE_PROJECT" };
- const saveProject = jest.fn(() => saveAction);
- syncProject.mockImplementationOnce(jest.fn((_) => saveProject));
- fireEvent.click(newProjectLink);
- await waitFor(() =>
- expect(saveProject).toHaveBeenCalledWith({
- project: defaultPythonProject,
- accessToken: user.access_token,
- autosave: false,
- }),
- );
- expect(store.getActions()[0]).toEqual(saveAction);
- });
-});
diff --git a/src/components/Modals/NotFoundModal.jsx b/src/components/Modals/NotFoundModal.jsx
deleted file mode 100644
index eb3a6e59b..000000000
--- a/src/components/Modals/NotFoundModal.jsx
+++ /dev/null
@@ -1,71 +0,0 @@
-import React from "react";
-import { useDispatch, useSelector } from "react-redux";
-import { useTranslation } from "react-i18next";
-
-import Button from "../Button/Button";
-import "../../assets/stylesheets/Modal.scss";
-import { closeNotFoundModal, syncProject } from "../../redux/EditorSlice";
-import { defaultPythonProject } from "../../utils/defaultProjects";
-import GeneralModal from "./GeneralModal";
-
-const NotFoundModal = (props) => {
- const {
- buttons = null,
- text = null,
- withCloseButton = true,
- withClickToClose = true,
- } = props;
- const dispatch = useDispatch();
- const { t } = useTranslation();
- const user = useSelector((state) => state.auth.user);
-
- const isModalOpen = useSelector((state) => state.editor.notFoundModalShowing);
- const closeModal = () => dispatch(closeNotFoundModal());
-
- const createNewProject = async () => {
- if (user) {
- dispatch(
- syncProject("save")({
- project: defaultPythonProject,
- accessToken: user.access_token,
- autosave: false,
- }),
- );
- }
- closeModal();
- };
-
- return (
- ,
-
- {t("project.notFoundModal.projectsSiteLinkText")}
- ,
- ]
- }
- defaultCallback={createNewProject}
- />
- );
-};
-
-export default NotFoundModal;
diff --git a/src/components/Modals/NotFoundModal.test.js b/src/components/Modals/NotFoundModal.test.js
deleted file mode 100644
index e610785cf..000000000
--- a/src/components/Modals/NotFoundModal.test.js
+++ /dev/null
@@ -1,99 +0,0 @@
-import React from "react";
-import { fireEvent, render, screen, waitFor } from "@testing-library/react";
-import { Provider } from "react-redux";
-import configureStore from "redux-mock-store";
-import NotFoundModal from "./NotFoundModal";
-import { closeNotFoundModal, syncProject } from "../../redux/EditorSlice";
-import { defaultPythonProject } from "../../utils/defaultProjects";
-
-jest.mock("../../redux/EditorSlice", () => ({
- ...jest.requireActual("../../redux/EditorSlice"),
- syncProject: jest.fn((_) => jest.fn()),
-}));
-
-const user = {
- access_token: "39a09671-be55-4847-baf5-8919a0c24a25",
- profile: {
- user: "b48e70e2-d9ed-4a59-aee5-fc7cf09dbfaf",
- },
-};
-
-const middlewares = [];
-const mockStore = configureStore(middlewares);
-
-describe("When logged in and notFoundModalShowing is true", () => {
- let store;
-
- beforeEach(() => {
- const initialState = {
- editor: {
- notFoundModalShowing: true,
- },
- auth: {
- user: user,
- },
- };
- store = mockStore(initialState);
- render(
-
-
-
-
- ,
- );
- });
-
- test("Modal rendered", () => {
- expect(
- screen.queryByText("project.notFoundModal.heading"),
- ).toBeInTheDocument();
- });
-
- test("Clicking new project creates a new project", async () => {
- const newProjectLink = screen.queryByText(
- "project.notFoundModal.newProject",
- );
- const saveAction = { type: "SAVE_PROJECT" };
- const saveProject = jest.fn(() => saveAction);
- syncProject.mockImplementationOnce(jest.fn((_) => saveProject));
- fireEvent.click(newProjectLink);
- await waitFor(() =>
- expect(saveProject).toHaveBeenCalledWith({
- project: defaultPythonProject,
- accessToken: user.access_token,
- autosave: false,
- }),
- );
- expect(store.getActions()[0]).toEqual(saveAction);
- });
-});
-
-describe("When not logged in", () => {
- let store;
-
- beforeEach(() => {
- const initialState = {
- editor: {
- notFoundModalShowing: true,
- },
- auth: {},
- };
- store = mockStore(initialState);
- });
-
- test("Clicking new project closes the modal", () => {
- render(
-
-
-
-
- ,
- );
-
- const newProjectLink = screen.queryByText(
- "project.notFoundModal.newProject",
- );
- fireEvent.click(newProjectLink);
- expect(store.getActions()).toEqual([closeNotFoundModal()]);
- });
-});
diff --git a/src/components/Modals/NotFoundModalEmbedded.jsx b/src/components/Modals/NotFoundModalEmbedded.jsx
deleted file mode 100644
index 3d43770c1..000000000
--- a/src/components/Modals/NotFoundModalEmbedded.jsx
+++ /dev/null
@@ -1,31 +0,0 @@
-import React from "react";
-import { useTranslation } from "react-i18next";
-
-import NotFoundModal from "./NotFoundModal";
-
-const NotFoundModalEmbedded = (props) => {
- const { t } = useTranslation();
-
- return (
-
- {t("project.notFoundModal.projectsSiteLinkText")}
- ,
- ]}
- text={[
- {
- type: "paragraph",
- content: t("project.notFoundModal.embedded.text"),
- },
- ]}
- />
- );
-};
-
-export default NotFoundModalEmbedded;
diff --git a/src/components/Modals/RenameProjectModal.jsx b/src/components/Modals/RenameProjectModal.jsx
deleted file mode 100644
index ca462a7b6..000000000
--- a/src/components/Modals/RenameProjectModal.jsx
+++ /dev/null
@@ -1,81 +0,0 @@
-import React, { useState } from "react";
-import { gql, useMutation } from "@apollo/client";
-import { useTranslation } from "react-i18next";
-import { useDispatch, useSelector } from "react-redux";
-import { closeRenameProjectModal } from "../../redux/EditorSlice";
-import { showRenamedMessage } from "../../utils/Notifications";
-import Button from "../Button/Button";
-import InputModal from "./InputModal";
-
-export const RENAME_PROJECT_MUTATION = gql`
- mutation RenameProject($id: String!, $name: String!) {
- updateProject(input: { id: $id, name: $name }) {
- project {
- id
- name
- updatedAt
- }
- }
- }
-`;
-
-export const RenameProjectModal = () => {
- const dispatch = useDispatch();
- const { t } = useTranslation();
- const isModalOpen = useSelector(
- (state) => state.editor.renameProjectModalShowing,
- );
- const project = useSelector((state) => state.editor.modals.renameProject);
- const closeModal = () => dispatch(closeRenameProjectModal());
-
- const [projectName, setProjectName] = useState(project.name);
-
- const onCompleted = () => {
- closeModal();
- showRenamedMessage();
- };
-
- // This can capture data, error, loading as per normal queries, but we're not
- // using them yet.
- const [renameProjectMutation] = useMutation(RENAME_PROJECT_MUTATION);
-
- const renameProject = () => {
- renameProjectMutation({
- variables: { id: project.id, name: projectName },
- onCompleted: onCompleted,
- });
- };
-
- return (
- ,
- ,
- ]}
- />
- );
-};
-
-export default RenameProjectModal;
diff --git a/src/components/Modals/RenameProjectModal.test.js b/src/components/Modals/RenameProjectModal.test.js
deleted file mode 100644
index 86bc364c3..000000000
--- a/src/components/Modals/RenameProjectModal.test.js
+++ /dev/null
@@ -1,135 +0,0 @@
-import React from "react";
-import { fireEvent, render, screen, waitFor } from "@testing-library/react";
-import { Provider } from "react-redux";
-import configureStore from "redux-mock-store";
-import { MockedProvider } from "@apollo/client/testing";
-
-import {
- RenameProjectModal,
- RENAME_PROJECT_MUTATION,
-} from "./RenameProjectModal";
-import { showRenamedMessage } from "../../utils/Notifications";
-
-jest.mock("../../utils/Notifications");
-
-describe("RenameProjectModal", () => {
- let store;
- let inputBox;
- let saveButton;
- let project = {
- name: "my first project",
- id: "XYZ",
- };
- let newName = "renamed project";
- let mocks;
-
- beforeEach(() => {
- mocks = [
- {
- request: {
- query: RENAME_PROJECT_MUTATION,
- variables: { id: project.id, name: newName },
- },
- result: jest.fn(() => ({
- data: {
- id: project.id,
- name: newName,
- updatedAt: "2023-02-257T14:48:00Z",
- },
- })),
- },
- ];
-
- const mockStore = configureStore([]);
- const initialState = {
- editor: {
- modals: {
- renameProject: project,
- },
- renameProjectModalShowing: true,
- },
- };
- store = mockStore(initialState);
-
- render(
-
-
-
-
-
-
- ,
- );
-
- inputBox = screen.getByRole("textbox");
- saveButton = screen.getByText("projectList.renameProjectModal.save");
- });
-
- test("Modal renders", () => {
- expect(
- screen.getByText("projectList.renameProjectModal.heading"),
- ).not.toBeNull();
- });
-
- test("Clicking cancel button closes modal and does not save", () => {
- const cancelButton = screen.queryByText(
- "projectList.renameProjectModal.cancel",
- );
- fireEvent.click(cancelButton);
- expect(store.getActions()).toEqual([
- { type: "editor/closeRenameProjectModal" },
- ]);
- });
-
- describe("Clicking save", () => {
- let renameProjectMutationMock;
-
- beforeEach(() => {
- renameProjectMutationMock = mocks[0].result;
- fireEvent.change(inputBox, { target: { value: "renamed project" } });
- fireEvent.click(saveButton);
- });
-
- test("Calls the mutation", async () => {
- await waitFor(() => expect(renameProjectMutationMock).toHaveBeenCalled());
- });
-
- test("Eventually closes the modal", async () => {
- await waitFor(() =>
- expect(store.getActions()).toEqual([
- { type: "editor/closeRenameProjectModal" },
- ]),
- );
- });
-
- test("Eventually pops up the toast notification", async () => {
- await waitFor(() => expect(showRenamedMessage).toHaveBeenCalled());
- });
- });
-
- describe("Pressing Enter", () => {
- let renameProjectMutationMock;
-
- beforeEach(() => {
- renameProjectMutationMock = mocks[0].result;
- fireEvent.change(inputBox, { target: { value: "renamed project" } });
- fireEvent.keyDown(inputBox, { key: "Enter" });
- });
-
- test("Calls the mutation", async () => {
- await waitFor(() => expect(renameProjectMutationMock).toHaveBeenCalled());
- });
-
- test("Eventually closes the modal", async () => {
- await waitFor(() =>
- expect(store.getActions()).toEqual([
- { type: "editor/closeRenameProjectModal" },
- ]),
- );
- });
-
- test("Eventually pops up the toast notification", async () => {
- await waitFor(() => expect(showRenamedMessage).toHaveBeenCalled());
- });
- });
-});
diff --git a/src/redux/EditorSlice.js b/src/redux/EditorSlice.js
index 60f47acd1..c53751b09 100644
--- a/src/redux/EditorSlice.js
+++ b/src/redux/EditorSlice.js
@@ -130,13 +130,10 @@ export const editorInitialState = {
senseHatAlwaysEnabled: false,
senseHatEnabled: false,
loadRemixDisabled: false,
- accessDeniedWithAuthModalShowing: false,
betaModalShowing: false,
errorModalShowing: false,
- notFoundModalShowing: false,
newFileModalShowing: false,
renameFileModalShowing: false,
- renameProjectModalShowing: false,
sidebarShowing: true,
modals: {},
errorDetails: {},
@@ -345,9 +342,6 @@ export const EditorSlice = createSlice({
state.codeRunStopped = false;
state.runnerBeingLoaded = null;
},
- closeAccessDeniedWithAuthModal: (state) => {
- state.accessDeniedWithAuthModalShowing = false;
- },
showBetaModal: (state) => {
state.betaModalShowing = true;
},
@@ -360,9 +354,6 @@ export const EditorSlice = createSlice({
closeErrorModal: (state) => {
state.errorModalShowing = false;
},
- closeNotFoundModal: (state) => {
- state.notFoundModalShowing = false;
- },
showNewFileModal: (state) => {
state.newFileModalShowing = true;
},
@@ -378,14 +369,6 @@ export const EditorSlice = createSlice({
state.renameFileModalShowing = false;
state.nameError = "";
},
- showRenameProjectModal: (state, action) => {
- state.modals.renameProject = action.payload;
- state.renameProjectModalShowing = true;
- },
- closeRenameProjectModal: (state) => {
- state.modals.renameProject = null;
- state.renameProjectModalShowing = false;
- },
showSidebar: (state) => {
state.sidebarShowing = true;
},
@@ -410,13 +393,7 @@ export const EditorSlice = createSlice({
state.saving = "success";
state.lastSavedTime = Date.now();
- if (state.renameProjectModalShowing) {
- state.modals.renameProject = null;
- state.renameProjectModalShowing = false;
- state.projectListLoaded = "idle";
- } else if (
- state.project.identifier !== action.payload.project.identifier
- ) {
+ if (state.project.identifier !== action.payload.project.identifier) {
state.project.image_list = state.project.image_list || [];
state.project = action.payload.project;
state.loading = "idle";
@@ -496,18 +473,14 @@ export const {
updateImages,
updateProjectComponent,
updateProjectName,
- closeAccessDeniedWithAuthModal,
showBetaModal,
closeBetaModal,
showErrorModal,
closeErrorModal,
- closeNotFoundModal,
showNewFileModal,
closeNewFileModal,
showRenameFileModal,
closeRenameFileModal,
- showRenameProjectModal,
- closeRenameProjectModal,
showSidebar,
hideSidebar,
disableTheming,
diff --git a/src/redux/EditorSlice.test.js b/src/redux/EditorSlice.test.js
index 7c7baf6e2..3aff3b023 100644
--- a/src/redux/EditorSlice.test.js
+++ b/src/redux/EditorSlice.test.js
@@ -444,39 +444,6 @@ describe("When project has an identifier", () => {
});
});
-describe("When renaming a project from the rename project modal", () => {
- let project = { name: "hello world" };
- const access_token = "myToken";
- const initialState = {
- editor: {
- project: {},
- modals: { renameProject: project },
- renameProjectModalShowing: true,
- projectListLoaded: "success",
- },
- auth: { user: { access_token } },
- };
-
- let saveThunk;
-
- beforeEach(() => {
- saveThunk = syncProject("save");
- });
-
- test("The saveProject/fulfilled action closes rename project modal and reloads projects list", () => {
- const expectedState = {
- project: {},
- saving: "success",
- modals: { renameProject: null },
- renameProjectModalShowing: false,
- projectListLoaded: "idle",
- };
- expect(
- reducer(initialState.editor, saveThunk.fulfilled({ project })),
- ).toEqual(expectedState);
- });
-});
-
describe("When deleting a project", () => {
const dispatch = jest.fn();
let project = { identifier: "my-amazing-project", name: "hello world" };
diff --git a/src/redux/reducers/loadProjectReducers.js b/src/redux/reducers/loadProjectReducers.js
index 5bf49d54e..29a0553fb 100644
--- a/src/redux/reducers/loadProjectReducers.js
+++ b/src/redux/reducers/loadProjectReducers.js
@@ -39,11 +39,7 @@ const loadProjectRejected = (state, action) => {
const accessToken = action.meta.arg?.accessToken;
const accessDeniedCodes = ["401", "403", "500"];
- if (errorCode === "404") {
- state.notFoundModalShowing = true;
- } else if (accessDeniedCodes.includes(errorCode) && accessToken) {
- state.accessDeniedWithAuthModalShowing = true;
- } else if (accessDeniedCodes.includes(errorCode) && !accessToken) {
+ if (accessDeniedCodes.includes(errorCode) && !accessToken) {
state.modals.accessDenied = {
identifier: action.meta.arg.identifier,
projectType: action.meta.arg.projectType,
diff --git a/src/redux/reducers/loadProjectReducers.test.js b/src/redux/reducers/loadProjectReducers.test.js
index 9b1a08b39..f024e3d73 100644
--- a/src/redux/reducers/loadProjectReducers.test.js
+++ b/src/redux/reducers/loadProjectReducers.test.js
@@ -175,7 +175,6 @@ describe("EditorSliceReducers::loadProjectRejectedReducer", () => {
const expectedState = {
loading: "failed",
saving: "idle",
- notFoundModalShowing: true,
currentLoadingRequestId: undefined,
};
@@ -190,7 +189,6 @@ describe("EditorSliceReducers::loadProjectRejectedReducer", () => {
let expectedState = {
loading: "failed",
saving: "idle",
- accessDeniedWithAuthModalShowing: true,
currentLoadingRequestId: undefined,
};
@@ -227,16 +225,6 @@ describe("EditorSliceReducers::loadProjectRejectedReducer", () => {
expect(newState).toEqual(expectedState);
});
-
- test("does not set the expected state for an unsupported status code", () => {
- action.error.message = "Request failed with status code 404";
-
- const newState = produce(initialState, (draft) => {
- loadProjectRejected(draft, action);
- });
-
- expect(newState).not.toEqual(expectedState);
- });
});
describe("when an auth token HAS NOT been set", () => {
diff --git a/src/utils/Notifications.js b/src/utils/Notifications.js
index 61c014453..589b30750 100644
--- a/src/utils/Notifications.js
+++ b/src/utils/Notifications.js
@@ -64,10 +64,3 @@ export const showRenamedMessage = () => {
icon: TickIcon,
});
};
-
-export const showRemixedMessage = () => {
- toast(i18n.t("notifications.projectRemixed"), {
- ...bottomCenterSettings,
- icon: TickIcon,
- });
-};
diff --git a/src/utils/Notifications.test.js b/src/utils/Notifications.test.js
index 6d4da05d1..4548661f1 100644
--- a/src/utils/Notifications.test.js
+++ b/src/utils/Notifications.test.js
@@ -1,7 +1,6 @@
import { toast } from "react-toastify";
import {
showLoginPrompt,
- showRemixedMessage,
showSavedMessage,
showSavePrompt,
} from "./Notifications";
@@ -11,14 +10,6 @@ jest.mock("./i18n", () => ({
}));
jest.mock("react-toastify");
-test("Calling showRemixedMessage calls toast with correct string", () => {
- showRemixedMessage();
- expect(toast).toHaveBeenCalledWith(
- "notifications.projectRemixed",
- expect.anything(),
- );
-});
-
test("Calling showSavedMessage calls toast with correct string", () => {
showSavedMessage();
expect(toast).toHaveBeenCalledWith(