From 94bfb80fb2900bfa67cb283078f0bf46d0f9a175 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Mon, 11 Sep 2023 19:41:18 -0300 Subject: [PATCH 01/89] minor visual fix --- .../creator/Editor/ActionButtons/CreatorActionButton.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/creator/Editor/ActionButtons/CreatorActionButton.tsx b/src/components/creator/Editor/ActionButtons/CreatorActionButton.tsx index 9f5ed0c0..f9043a2d 100644 --- a/src/components/creator/Editor/ActionButtons/CreatorActionButton.tsx +++ b/src/components/creator/Editor/ActionButtons/CreatorActionButton.tsx @@ -18,7 +18,7 @@ export const CreatorActionButton = ({ isshortversion = false, ...props }: Creato - + diff --git a/src/components/creator/Editor/ActionButtons/DiscardChallengeButton.tsx b/src/components/creator/Editor/ActionButtons/DiscardChallengeButton.tsx index f7015d70..d61ebdcf 100644 --- a/src/components/creator/Editor/ActionButtons/DiscardChallengeButton.tsx +++ b/src/components/creator/Editor/ActionButtons/DiscardChallengeButton.tsx @@ -4,7 +4,7 @@ import ClearIcon from '@mui/icons-material/Clear'; export const DiscardChallengeButton = () => { - return + return } nametag='discardChallenge'/> diff --git a/src/components/creator/Editor/ActionButtons/PreviewButton.tsx b/src/components/creator/Editor/ActionButtons/PreviewButton.tsx index 4d3125e9..5c939f3c 100644 --- a/src/components/creator/Editor/ActionButtons/PreviewButton.tsx +++ b/src/components/creator/Editor/ActionButtons/PreviewButton.tsx @@ -4,7 +4,7 @@ import { Visibility } from "@mui/icons-material"; export const PreviewButton = () => { - return + return } nametag='preview'/> diff --git a/src/components/creator/Editor/ActionButtons/ReturnToEditButton.tsx b/src/components/creator/Editor/ActionButtons/ReturnToEditButton.tsx index b103ac85..74797daf 100644 --- a/src/components/creator/Editor/ActionButtons/ReturnToEditButton.tsx +++ b/src/components/creator/Editor/ActionButtons/ReturnToEditButton.tsx @@ -4,7 +4,7 @@ import EditIcon from '@mui/icons-material/Edit'; export const ReturnToEditionButton = () => { - return + return } nametag='keepEditing' /> diff --git a/src/components/creator/Selection.tsx b/src/components/creator/Selection.tsx index b0d9fe31..259b25b3 100644 --- a/src/components/creator/Selection.tsx +++ b/src/components/creator/Selection.tsx @@ -177,7 +177,7 @@ const ChallengeInProgressDialog = () => { {t("selection.discardWarning")} - + From 4e7d87e0d6e3883922418b80c4cc5ea0b1c9a677 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Thu, 14 Sep 2023 12:19:02 -0300 Subject: [PATCH 10/89] update pb 1.15.1 --- scripts/copyEmberPB.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/copyEmberPB.sh b/scripts/copyEmberPB.sh index 6ac6928d..755ee99c 100644 --- a/scripts/copyEmberPB.sh +++ b/scripts/copyEmberPB.sh @@ -1,4 +1,4 @@ -PB_APP_VERSION="1.15.0" +PB_APP_VERSION="1.15.1" echo "==> Downloading Pilas Bloques app online..." mkdir -p tmp From 0ce8ffd851dffa3a40f51500634867c40c9d6964 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Thu, 14 Sep 2023 13:26:23 -0300 Subject: [PATCH 11/89] drags and drags --- package-lock.json | 23 +++++++++++++++++ package.json | 1 + .../StatementEdition.tsx | 1 + .../ChallengeDetailsEdition/ToolBoxDialog.tsx | 1 + .../modalDialog/GenericModalDialog.tsx | 25 ++++++++++++++++--- 5 files changed, 48 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 92ebd8f8..ffb17d29 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,6 +29,7 @@ "react": "^18.2.0", "react-carousel3": "^1.0.0", "react-dom": "^18.2.0", + "react-draggable": "^4.4.5", "react-ga4": "^2.1.0", "react-i18next": "^12.1.5", "react-router-dom": "^6.8.2", @@ -20165,6 +20166,19 @@ "react": "^18.2.0" } }, + "node_modules/react-draggable": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-4.4.5.tgz", + "integrity": "sha512-OMHzJdyJbYTZo4uQE393fHcqqPYsEtkjfMgvCHr6rejT+Ezn4OZbNyGH50vv+SunC1RMvwOTSWkEODQLzw1M9g==", + "dependencies": { + "clsx": "^1.1.1", + "prop-types": "^15.8.1" + }, + "peerDependencies": { + "react": ">= 16.3.0", + "react-dom": ">= 16.3.0" + } + }, "node_modules/react-error-overlay": { "version": "6.0.11", "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", @@ -40566,6 +40580,15 @@ "scheduler": "^0.23.0" } }, + "react-draggable": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-4.4.5.tgz", + "integrity": "sha512-OMHzJdyJbYTZo4uQE393fHcqqPYsEtkjfMgvCHr6rejT+Ezn4OZbNyGH50vv+SunC1RMvwOTSWkEODQLzw1M9g==", + "requires": { + "clsx": "^1.1.1", + "prop-types": "^15.8.1" + } + }, "react-error-overlay": { "version": "6.0.11", "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", diff --git a/package.json b/package.json index 8b176056..4b722639 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "react": "^18.2.0", "react-carousel3": "^1.0.0", "react-dom": "^18.2.0", + "react-draggable": "^4.4.5", "react-ga4": "^2.1.0", "react-i18next": "^12.1.5", "react-router-dom": "^6.8.2", diff --git a/src/components/creator/Editor/ChallengeDetailsEdition/StatementEdition.tsx b/src/components/creator/Editor/ChallengeDetailsEdition/StatementEdition.tsx index 520a3459..b6894e16 100644 --- a/src/components/creator/Editor/ChallengeDetailsEdition/StatementEdition.tsx +++ b/src/components/creator/Editor/ChallengeDetailsEdition/StatementEdition.tsx @@ -51,6 +51,7 @@ export const StatementEdition = (props: StatementEditionType) => { dialogProps={{open: dialogOpen, fullWidth:true, maxWidth:"lg"}} onConfirm={handleOnConfirm} onCancel={handleOnCancel} + isDraggable={true} title={t('statement.title')}> diff --git a/src/components/creator/Editor/ChallengeDetailsEdition/ToolBoxDialog.tsx b/src/components/creator/Editor/ChallengeDetailsEdition/ToolBoxDialog.tsx index d373dd6f..0de11cbf 100644 --- a/src/components/creator/Editor/ChallengeDetailsEdition/ToolBoxDialog.tsx +++ b/src/components/creator/Editor/ChallengeDetailsEdition/ToolBoxDialog.tsx @@ -66,6 +66,7 @@ export const ToolBoxDialog = () => { isOpen={open} onConfirm={handleOnConfirm} onCancel={handleOnCancel} + isDraggable={true} title={t('toolbox.title')}>
diff --git a/src/components/modalDialog/GenericModalDialog.tsx b/src/components/modalDialog/GenericModalDialog.tsx index ba028bfb..eed04b72 100644 --- a/src/components/modalDialog/GenericModalDialog.tsx +++ b/src/components/modalDialog/GenericModalDialog.tsx @@ -1,6 +1,18 @@ import { FC } from 'react'; import { Button, Dialog, DialogActions, DialogContent, DialogProps, DialogTitle } from "@mui/material" import { useThemeContext } from '../../theme/ThemeContext'; +import Paper, { PaperProps } from '@mui/material/Paper'; +import Draggable from 'react-draggable'; + +function PaperComponent(props: PaperProps) { + return ( + + + + ); +} export interface ModalDialogProps { isOpen: boolean; @@ -9,7 +21,7 @@ export interface ModalDialogProps { title: string; dialogProps?: DialogProps; children?: JSX.Element; - + isDraggable?: boolean; } export const GenericModalDialog: FC = ({ @@ -18,6 +30,7 @@ export const GenericModalDialog: FC = ({ onCancel, title, dialogProps, + isDraggable, children }) => { @@ -34,8 +47,14 @@ export const GenericModalDialog: FC = ({ return ( <> - - {title} + + {title} {children} From 5b67deff92dd6d987748a98b0dbc10188d5ddc1b Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Thu, 14 Sep 2023 13:48:03 -0300 Subject: [PATCH 12/89] implicit --- .../creator/Editor/ChallengeDetailsEdition/StatementEdition.tsx | 2 +- .../creator/Editor/ChallengeDetailsEdition/ToolBoxDialog.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/creator/Editor/ChallengeDetailsEdition/StatementEdition.tsx b/src/components/creator/Editor/ChallengeDetailsEdition/StatementEdition.tsx index b6894e16..48067b1d 100644 --- a/src/components/creator/Editor/ChallengeDetailsEdition/StatementEdition.tsx +++ b/src/components/creator/Editor/ChallengeDetailsEdition/StatementEdition.tsx @@ -51,7 +51,7 @@ export const StatementEdition = (props: StatementEditionType) => { dialogProps={{open: dialogOpen, fullWidth:true, maxWidth:"lg"}} onConfirm={handleOnConfirm} onCancel={handleOnCancel} - isDraggable={true} + isDraggable title={t('statement.title')}> diff --git a/src/components/creator/Editor/ChallengeDetailsEdition/ToolBoxDialog.tsx b/src/components/creator/Editor/ChallengeDetailsEdition/ToolBoxDialog.tsx index 0de11cbf..dfad3d4b 100644 --- a/src/components/creator/Editor/ChallengeDetailsEdition/ToolBoxDialog.tsx +++ b/src/components/creator/Editor/ChallengeDetailsEdition/ToolBoxDialog.tsx @@ -66,7 +66,7 @@ export const ToolBoxDialog = () => { isOpen={open} onConfirm={handleOnConfirm} onCancel={handleOnCancel} - isDraggable={true} + isDraggable title={t('toolbox.title')}>
From 895e2008080c012a016bdf6086124dbaad548598 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Fri, 15 Sep 2023 00:12:17 -0300 Subject: [PATCH 13/89] warnings + breadcrumbs breakpoint --- src/components/ChallengeView.tsx | 8 +++----- src/components/ImportedChallengeView.tsx | 6 ++---- src/components/PBreadcrumbs.tsx | 7 ++++--- src/components/book/BookView.tsx | 7 ++----- src/components/header/Header.tsx | 4 +--- 5 files changed, 12 insertions(+), 20 deletions(-) diff --git a/src/components/ChallengeView.tsx b/src/components/ChallengeView.tsx index fe393c79..eeb58666 100644 --- a/src/components/ChallengeView.tsx +++ b/src/components/ChallengeView.tsx @@ -5,11 +5,9 @@ import { EmberView } from "./emberView/EmberView"; import HomeIcon from '@mui/icons-material/Home'; import { Header } from "./header/Header"; import { useTranslation } from "react-i18next"; -import { useThemeContext } from "../theme/ThemeContext"; import { PBreadcrumbs } from "./PBreadcrumbs"; const ChallengeBreadcrumb = (path: PathToChallenge) => { - const { theme } = useThemeContext() const { t } = useTranslation(["books", "challenges", "chapters", "groups"]) const isSmallScreen: boolean = useMediaQuery('(max-width:1100px)'); @@ -27,15 +25,15 @@ const ChallengeBreadcrumb = (path: PathToChallenge) => { - {t(`${path.book.id}.title`, { ns: "books" })} + {t(`${path.book.id}.title`, { ns: "books" })} {shouldShowChapter && - {t(`${path.chapter.id}.title`, { ns: "chapters" })} + {t(`${path.chapter.id}.title`, { ns: "chapters" })} } {shouldShowGroup && - {t(`${path.group.id}.title`, { ns: "groups" })} + {t(`${path.group.id}.title`, { ns: "groups" })} } {t(`${path.challenge.id}.title`, { ns: "challenges" })} diff --git a/src/components/ImportedChallengeView.tsx b/src/components/ImportedChallengeView.tsx index 008720e0..c7a74732 100644 --- a/src/components/ImportedChallengeView.tsx +++ b/src/components/ImportedChallengeView.tsx @@ -5,7 +5,6 @@ import { SerializedChallenge } from "./serializedChallenge"; import { Typography } from "@mui/material"; import { useTranslation } from "react-i18next"; import { PBreadcrumbs } from "./PBreadcrumbs"; -import { useThemeContext } from "../theme/ThemeContext"; export const EMBER_IMPORTED_CHALLENGE_PATH = "desafio/react-imported-challenge" @@ -21,7 +20,6 @@ export const ImportedChallengeView = () => { const ImportedChallengeViewBreadcrumb = () => { const { t } = useTranslation("creator") - const { theme } = useThemeContext() const location = useLocation(); const importedChallenge: SerializedChallenge | undefined = location.state; @@ -30,10 +28,10 @@ const ImportedChallengeViewBreadcrumb = () => { return - {t("importedChallengedHeader")} + {t("importedChallengedHeader")} - {importedChallenge.title} + {importedChallenge.title} } \ No newline at end of file diff --git a/src/components/PBreadcrumbs.tsx b/src/components/PBreadcrumbs.tsx index 2e4b1d9c..c46672e6 100644 --- a/src/components/PBreadcrumbs.tsx +++ b/src/components/PBreadcrumbs.tsx @@ -1,4 +1,4 @@ -import { Breadcrumbs, BreadcrumbsProps, styled, useMediaQuery } from "@mui/material"; +import { Breadcrumbs, BreadcrumbsProps } from "@mui/material"; import { useThemeContext } from "../theme/ThemeContext"; type PBreadcrumbsProps = { @@ -8,7 +8,8 @@ type PBreadcrumbsProps = { export const PBreadcrumbs = (props: PBreadcrumbsProps & BreadcrumbsProps) => { const { theme } = useThemeContext() - return + return {props.children} -} \ No newline at end of file +} + diff --git a/src/components/book/BookView.tsx b/src/components/book/BookView.tsx index 1f13afc2..9fc9bdc9 100644 --- a/src/components/book/BookView.tsx +++ b/src/components/book/BookView.tsx @@ -6,12 +6,9 @@ import { Header } from "../header/Header"; import HomeIcon from '@mui/icons-material/Home'; import { Link } from "react-router-dom"; import { useTranslation } from "react-i18next"; -import { useThemeContext } from "../../theme/ThemeContext"; import { PBreadcrumbs } from "../PBreadcrumbs"; -const Breadcrumb = (book: Book) => { - const { theme } = useThemeContext() - +const Breadcrumb = (book: Book) => { const {t} = useTranslation("books") @@ -21,7 +18,7 @@ const Breadcrumb = (book: Book) => { - {t(`${book.id}.title`)} + {t(`${book.id}.title`)} } diff --git a/src/components/header/Header.tsx b/src/components/header/Header.tsx index 922845b6..af38748d 100644 --- a/src/components/header/Header.tsx +++ b/src/components/header/Header.tsx @@ -16,11 +16,9 @@ type HeaderTextProps = { } export const HeaderText = (props: HeaderTextProps) => { - const { theme } = useThemeContext() return + className={styles["header-text"]}> {props.text} } From a197fe51df02bc00b41922addda7aa996dbfdde6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Fri, 15 Sep 2023 09:47:28 -0300 Subject: [PATCH 14/89] subheader --- .../creator/Editor/CreatorViewMode.tsx | 42 ++++++++----------- src/components/creator/Editor/Editor.tsx | 27 ++++++------ 2 files changed, 30 insertions(+), 39 deletions(-) diff --git a/src/components/creator/Editor/CreatorViewMode.tsx b/src/components/creator/Editor/CreatorViewMode.tsx index 9b4d7e4f..2ff2f407 100644 --- a/src/components/creator/Editor/CreatorViewMode.tsx +++ b/src/components/creator/Editor/CreatorViewMode.tsx @@ -1,4 +1,4 @@ -import { Box, Stack } from "@mui/material" +import { Typography } from "@mui/material" import { Ember } from "../../../emberCommunication" import { LocalStorage } from "../../../localStorage" import { EMBER_IMPORTED_CHALLENGE_PATH } from "../../ImportedChallengeView" @@ -6,37 +6,31 @@ import { EmberView } from "../../emberView/EmberView" import { Header, HeaderText } from "../../header/Header" import { SerializedChallenge } from "../../serializedChallenge" import { useTranslation } from "react-i18next" -import { CreatorSubHeader } from "./EditorSubHeader/CreatorSubHeader" -import { DownloadButton } from "./ActionButtons/DownloadButton" import { ReturnToEditionButton } from "./ActionButtons/ReturnToEditButton" -import { DiscardChallengeButton } from "./ActionButtons/DiscardChallengeButton" import { BetaBadge } from "../BetaBadge" - -const ViewModeSubHeader = ({challenge}: {challenge: SerializedChallenge}) => - - - - - - - -const Actions = () => <> - - - - - - +import { PBreadcrumbs } from "../../PBreadcrumbs" +import { EditorSubHeader } from "./Editor" export const CreatorViewMode = () => { - const {t} = useTranslation('creator') const challengeBeingEdited: SerializedChallenge = LocalStorage.getCreatorChallenge()! Ember.importChallenge(challengeBeingEdited) - + return <> -
} SubHeader={}/> - +
} SubHeader={}/>} /> + +} + +const CreatorViewHeader = ({ challenge }: { challenge: SerializedChallenge }) => { + const { t } = useTranslation('creator') + + return + + + {challenge.title} + + + } \ No newline at end of file diff --git a/src/components/creator/Editor/Editor.tsx b/src/components/creator/Editor/Editor.tsx index 01fe6612..be401076 100644 --- a/src/components/creator/Editor/Editor.tsx +++ b/src/components/creator/Editor/Editor.tsx @@ -13,14 +13,13 @@ import { useThemeContext } from "../../../theme/ThemeContext"; export const CreatorEditor = () => { const { theme } = useThemeContext() - const {t} = useTranslation('creator') + const { t } = useTranslation('creator') return ( - - -
} SubHeader={}/> - + +
} SubHeader={}/>} /> + @@ -28,15 +27,13 @@ export const CreatorEditor = () => { ) } -const EditorSubHeader: React.FC = () => +type EditorSubHeaderProps = { + viewButton: React.ReactNode +} + +export const EditorSubHeader = (props: EditorSubHeaderProps) => - - + + {props.viewButton} + - -const Actions = () => <> - - - - - \ No newline at end of file From 2c70039838dcc9de279493ed63bc2ccf0e8d88c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Fri, 15 Sep 2023 11:26:42 -0300 Subject: [PATCH 15/89] default title --- src/components/creator/ActorSelection/Actors.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/creator/ActorSelection/Actors.tsx b/src/components/creator/ActorSelection/Actors.tsx index dc09f7ef..eacd8d1a 100644 --- a/src/components/creator/ActorSelection/Actors.tsx +++ b/src/components/creator/ActorSelection/Actors.tsx @@ -219,7 +219,7 @@ export const Actors = () => { const isSmallScreen: boolean = useMediaQuery(theme.breakpoints.down('md')); const goToCreator = () => { - LocalStorage.saveCreatorChallenge(defaultChallenge(actorSelected.actor.id, t("statement.defaultDescription")!)) + LocalStorage.saveCreatorChallenge(defaultChallenge(actorSelected.actor.id, t("statement.defaultDescription")!, t("statement.defaultTitle")!)) navigate("/creador/editar") } From c4434177a0f642c072f86187789f3a6a7a3b4115 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Fri, 15 Sep 2023 14:13:59 -0300 Subject: [PATCH 16/89] hack css --- src/App.css | 3 +++ src/components/ChallengeView.tsx | 4 ++-- src/components/about/About.tsx | 2 +- src/components/book/BookView.tsx | 2 +- src/components/creator/ActorSelection/InProgressDialog.tsx | 2 +- .../creator/Editor/ActionButtons/DiscardChallengeButton.tsx | 2 +- src/components/creator/Editor/ActionButtons/PreviewButton.tsx | 2 +- .../creator/Editor/ActionButtons/ReturnToEditButton.tsx | 2 +- src/components/creator/Selection.tsx | 2 +- src/components/home/CreatorCard.tsx | 2 +- src/components/home/HomeCard.tsx | 2 +- 11 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/App.css b/src/App.css index 31fd2733..6a4ccc51 100644 --- a/src/App.css +++ b/src/App.css @@ -12,3 +12,6 @@ html, body, #root { height: 100%; } +a { + text-decoration: none; +} diff --git a/src/components/ChallengeView.tsx b/src/components/ChallengeView.tsx index e73850dc..457ec523 100644 --- a/src/components/ChallengeView.tsx +++ b/src/components/ChallengeView.tsx @@ -20,12 +20,12 @@ const ChallengeBreadcrumb = (path: PathToChallenge) => { return <> - + - + {t(`${path.book.id}.title`, { ns: "books" })} diff --git a/src/components/about/About.tsx b/src/components/about/About.tsx index 36f1d2d5..975554fa 100644 --- a/src/components/about/About.tsx +++ b/src/components/about/About.tsx @@ -12,7 +12,7 @@ export const About = () =>{ {t("title")} {t("text")} - {t("redirect")} + {t("redirect")} diff --git a/src/components/book/BookView.tsx b/src/components/book/BookView.tsx index 164bbc4b..a26ed3a2 100644 --- a/src/components/book/BookView.tsx +++ b/src/components/book/BookView.tsx @@ -16,7 +16,7 @@ const Breadcrumb = (book: Book) => { return - + diff --git a/src/components/creator/ActorSelection/InProgressDialog.tsx b/src/components/creator/ActorSelection/InProgressDialog.tsx index 221dedf4..bb4d56bd 100644 --- a/src/components/creator/ActorSelection/InProgressDialog.tsx +++ b/src/components/creator/ActorSelection/InProgressDialog.tsx @@ -31,7 +31,7 @@ export const ChallengeInProgressDialog = () => { {t("selection.discardWarning")} - + diff --git a/src/components/creator/Editor/ActionButtons/DiscardChallengeButton.tsx b/src/components/creator/Editor/ActionButtons/DiscardChallengeButton.tsx index d61ebdcf..f7015d70 100644 --- a/src/components/creator/Editor/ActionButtons/DiscardChallengeButton.tsx +++ b/src/components/creator/Editor/ActionButtons/DiscardChallengeButton.tsx @@ -4,7 +4,7 @@ import ClearIcon from '@mui/icons-material/Clear'; export const DiscardChallengeButton = () => { - return + return } nametag='discardChallenge'/> diff --git a/src/components/creator/Editor/ActionButtons/PreviewButton.tsx b/src/components/creator/Editor/ActionButtons/PreviewButton.tsx index 5c939f3c..4d3125e9 100644 --- a/src/components/creator/Editor/ActionButtons/PreviewButton.tsx +++ b/src/components/creator/Editor/ActionButtons/PreviewButton.tsx @@ -4,7 +4,7 @@ import { Visibility } from "@mui/icons-material"; export const PreviewButton = () => { - return + return } nametag='preview'/> diff --git a/src/components/creator/Editor/ActionButtons/ReturnToEditButton.tsx b/src/components/creator/Editor/ActionButtons/ReturnToEditButton.tsx index 74797daf..b103ac85 100644 --- a/src/components/creator/Editor/ActionButtons/ReturnToEditButton.tsx +++ b/src/components/creator/Editor/ActionButtons/ReturnToEditButton.tsx @@ -4,7 +4,7 @@ import EditIcon from '@mui/icons-material/Edit'; export const ReturnToEditionButton = () => { - return + return } nametag='keepEditing' /> diff --git a/src/components/creator/Selection.tsx b/src/components/creator/Selection.tsx index 259b25b3..b0d9fe31 100644 --- a/src/components/creator/Selection.tsx +++ b/src/components/creator/Selection.tsx @@ -177,7 +177,7 @@ const ChallengeInProgressDialog = () => { {t("selection.discardWarning")} - + diff --git a/src/components/home/CreatorCard.tsx b/src/components/home/CreatorCard.tsx index 93fbb994..5bb92b65 100644 --- a/src/components/home/CreatorCard.tsx +++ b/src/components/home/CreatorCard.tsx @@ -10,7 +10,7 @@ const CreateChallengeCard = () => { const {t} = useTranslation("home") return ( - + ) diff --git a/src/components/home/HomeCard.tsx b/src/components/home/HomeCard.tsx index d0393d86..b635da98 100644 --- a/src/components/home/HomeCard.tsx +++ b/src/components/home/HomeCard.tsx @@ -11,7 +11,7 @@ export type HomeCardProps = { type LinkCardProps = {url: string} & HomeCardProps export const LinkCard = (props: LinkCardProps) => - + {HomeCard(props)} From 91226df7c7f79d8f70bfdb5cb2e64d4e3303a281 Mon Sep 17 00:00:00 2001 From: Alfredo Sanzo Date: Fri, 15 Sep 2023 15:42:18 -0300 Subject: [PATCH 17/89] Release 2.1.6 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index ffb17d29..146344f8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "pilasbloques", - "version": "2.1.5", + "version": "2.1.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "pilasbloques", - "version": "2.1.5", + "version": "2.1.6", "hasInstallScript": true, "dependencies": { "@emotion/react": "^11.10.5", diff --git a/package.json b/package.json index 4b722639..f1087331 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pilasbloques", - "version": "2.1.5", + "version": "2.1.6", "productName": "Pilas Bloques", "genericName": "Programacion con bloques", "description": "Una herramienta para aprender a programar utilizando bloques", From 3cbd011aa0919ff3857e83aa155343cdcd911f37 Mon Sep 17 00:00:00 2001 From: Alfredo Sanzo Date: Mon, 18 Sep 2023 13:48:27 -0300 Subject: [PATCH 18/89] Downgrading Electron to support Win7 --- package-lock.json | 14 +++++++------- package.json | 4 ++-- scripts/package.sh | 6 +++--- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/package-lock.json b/package-lock.json index 146344f8..f5ef4aba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -38,7 +38,7 @@ "web-vitals": "^2.1.4" }, "devDependencies": { - "electron": "^23.1.0", + "electron": "^22.3.21", "electron-packager": "^17.1.1", "electron-rebuild": "^3.2.9", "makensis": "^2.0.5", @@ -8839,9 +8839,9 @@ } }, "node_modules/electron": { - "version": "23.1.1", - "resolved": "https://registry.npmjs.org/electron/-/electron-23.1.1.tgz", - "integrity": "sha512-junV1NzPx5T8Mx9+o8fMWK1Q5WOtG5vggiM09PGYg/6zTcGDL3DjGVHeUa/97gx7ErXL37DrFnxNg6+ePWprDg==", + "version": "22.3.24", + "resolved": "https://registry.npmjs.org/electron/-/electron-22.3.24.tgz", + "integrity": "sha512-wnGsShoRVk1Jmgr7h/jZK9bI5UwMF88sdQ5c8z2j2N8B9elhF/jKDFjwDXUrY1Y0xzAskOP0tYIDE+UbUM4byQ==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -32447,9 +32447,9 @@ } }, "electron": { - "version": "23.1.1", - "resolved": "https://registry.npmjs.org/electron/-/electron-23.1.1.tgz", - "integrity": "sha512-junV1NzPx5T8Mx9+o8fMWK1Q5WOtG5vggiM09PGYg/6zTcGDL3DjGVHeUa/97gx7ErXL37DrFnxNg6+ePWprDg==", + "version": "22.3.24", + "resolved": "https://registry.npmjs.org/electron/-/electron-22.3.24.tgz", + "integrity": "sha512-wnGsShoRVk1Jmgr7h/jZK9bI5UwMF88sdQ5c8z2j2N8B9elhF/jKDFjwDXUrY1Y0xzAskOP0tYIDE+UbUM4byQ==", "dev": true, "requires": { "@electron/get": "^2.0.0", diff --git a/package.json b/package.json index f1087331..bb68691f 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "pack:linux_zip": "bash ./scripts/package.sh -linux_zip", "pack:linux": "bash ./scripts/package.sh -linux", "pack:osx": "bash ./scripts/package.sh -osx", - "pack:win32": "bash ./scripts/package.sh -win32", + "pack:win": "bash ./scripts/package.sh -win", "pack:html": "bash ./scripts/package.sh -html", "clean": "rm -rf node_modules build binaries", "release": "release-it --only-version" @@ -76,7 +76,7 @@ ] }, "devDependencies": { - "electron": "^23.1.0", + "electron": "^22.3.21", "electron-packager": "^17.1.1", "electron-rebuild": "^3.2.9", "makensis": "^2.0.5", diff --git a/scripts/package.sh b/scripts/package.sh index 6db2f693..5d39f445 100644 --- a/scripts/package.sh +++ b/scripts/package.sh @@ -24,7 +24,7 @@ help() { echo " -linux_deb Packs w/ Electron and makes a Debian deb x64 installer." echo " -linux_zip Packs w/ Electron and makes a zipfile linux x64 executable." echo " -linux linux_deb + linux_zip" - echo " -win32 Packs w/ Electron and makes a Win32 installer." + echo " -win Packs w/ Electron and makes a Windows installer." echo " -html Makes zipfile with html to serve." echo "" echo " NOTE: every version generates a binary automatically in CI." @@ -74,7 +74,7 @@ osx() { hdiutil create binaries/$NAME-$VERSION.dmg -srcfolder ./binaries/$NAME-darwin-x64/$NAME.app -size 1g } -win32() { +windows() { eco "Generating installer for windows..." pack "win32" "ia32" "ico" cp packaging/instalador.nsi binaries/$NAME-win32-ia32/ @@ -94,7 +94,7 @@ case "$1" in (-linux_zip) linux_zip;; (-linux) linux;; (-osx) osx;; - (-win32) win32;; + (-win) windows;; (-html) html;; (*) help;; esac \ No newline at end of file From 6ed128795d58bebe4d3dee87b93414e5d0bf9195 Mon Sep 17 00:00:00 2001 From: Alfredo Sanzo Date: Mon, 18 Sep 2023 14:06:33 -0300 Subject: [PATCH 19/89] ooops forgot one win32 --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0df27629..e1e9ee95 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -88,7 +88,7 @@ jobs: node-version-file: '.nvmrc' - run: npm install - run: npm run build - - run: npm run pack:win32 + - run: npm run pack:win - uses: ncipollo/release-action@v1 with: allowUpdates: true From a5ebf2c053e49fb6b6e073c7158fbc91f1659ac4 Mon Sep 17 00:00:00 2001 From: Alfredo Sanzo Date: Mon, 18 Sep 2023 14:06:55 -0300 Subject: [PATCH 20/89] Release 2.1.7 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index f5ef4aba..6dbf986c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "pilasbloques", - "version": "2.1.6", + "version": "2.1.7", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "pilasbloques", - "version": "2.1.6", + "version": "2.1.7", "hasInstallScript": true, "dependencies": { "@emotion/react": "^11.10.5", diff --git a/package.json b/package.json index bb68691f..9d345086 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pilasbloques", - "version": "2.1.6", + "version": "2.1.7", "productName": "Pilas Bloques", "genericName": "Programacion con bloques", "description": "Una herramienta para aprender a programar utilizando bloques", From 2973417a81c7412518826e074fb8f4800c15dfe5 Mon Sep 17 00:00:00 2001 From: Alfredo Sanzo Date: Mon, 18 Sep 2023 18:53:14 -0300 Subject: [PATCH 21/89] Cambio "inicial" por "principiante". Agrego trad --- locales/en-us/home.json | 2 +- locales/es-ar/home.json | 2 +- locales/pt-br/home.json | 11 +++++++++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/locales/en-us/home.json b/locales/en-us/home.json index 80380540..c6cfb7b0 100644 --- a/locales/en-us/home.json +++ b/locales/en-us/home.json @@ -1,6 +1,6 @@ { "cards": { - "initial": "Initial", + "initial": "Beginner", "intermediate": "Intermediate", "advanced": "Advanced", "import": "Import your challenge", diff --git a/locales/es-ar/home.json b/locales/es-ar/home.json index c718cac8..954e1f08 100644 --- a/locales/es-ar/home.json +++ b/locales/es-ar/home.json @@ -4,7 +4,7 @@ "signUp": "Registrate", "importError": "El archivo es inválido", "cards": { - "initial": "Inicial", + "initial": "Principiante", "intermediate": "Intermedio", "advanced": "Avanzado", "import": "Importá tu desafío", diff --git a/locales/pt-br/home.json b/locales/pt-br/home.json index de7f4628..2517f2fa 100644 --- a/locales/pt-br/home.json +++ b/locales/pt-br/home.json @@ -1,3 +1,14 @@ { + "title": "Escolha seu nível e comece a programar", + "creatorTitle": "Você também pode criar ou importar seu próprio desafio", + "signUp": "Inscrever-se", + "importError": "O arquivo é inválido", + "cards": { + "initial": "Principiante", + "intermediate": "Intermédio", + "advanced": "Avançado", + "import": "Importe seu desafio", + "creator": "Crie seu desafio" + }, "header": "Uma ferramenta para aprender a programar" } \ No newline at end of file From d0c10d0a1d57e44a94bd322ae6d1b79415fc9ba3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Tue, 19 Sep 2023 00:31:58 -0300 Subject: [PATCH 22/89] fixing dark mode --- src/localStorage.ts | 2 +- src/theme/ThemeContext.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/localStorage.ts b/src/localStorage.ts index 05f35c1e..a95beed3 100644 --- a/src/localStorage.ts +++ b/src/localStorage.ts @@ -23,7 +23,7 @@ export namespace LocalStorage { export const saveImportedChallenge = (importedChallenge: EmberExecutableChallenge) => _save(PB_IMPORTED_CHALLENGE, importedChallenge) export const saveUser = (user: User | null) => _save(PB_USER, user) export const saveCreatorChallenge = (challenge: SerializedChallenge | null) => _save(PB_CREATOR_CHALLENGE, challenge) - export const toggleDarkMode = () => _save(PB_USE_NIGHT_THEME, (!getIsDarkMode())) + export const saveDarkMode = (darkMode: boolean) => _save(PB_USE_NIGHT_THEME, darkMode) const _get = (key: string) => _doSafe(key, (storage: Storage) => { const value = storage.getItem(key) diff --git a/src/theme/ThemeContext.tsx b/src/theme/ThemeContext.tsx index e5043813..12a4a083 100644 --- a/src/theme/ThemeContext.tsx +++ b/src/theme/ThemeContext.tsx @@ -28,7 +28,7 @@ export const ThemeContextProvider: FC = ({ children }) => { ); useEffect(() =>{ - LocalStorage.toggleDarkMode() + LocalStorage.saveDarkMode(darkModeEnabled) Ember.refreshIframe() }, [darkModeEnabled]) From d17c2b35b8c0cb84610f34293e744804c670953e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Tue, 19 Sep 2023 12:29:34 -0300 Subject: [PATCH 23/89] iframe no border --- src/components/emberView/ember-view.module.css | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/emberView/ember-view.module.css b/src/components/emberView/ember-view.module.css index 0eef1020..36237c88 100644 --- a/src/components/emberView/ember-view.module.css +++ b/src/components/emberView/ember-view.module.css @@ -6,4 +6,5 @@ .ember-iframe { width: 100%; height: 100%; + border: none; } From 8428177916c9a104fdf64e7722818671f2f0d926 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Thu, 21 Sep 2023 16:28:05 -0300 Subject: [PATCH 24/89] books --- locales/en-us/books.json | 4 ++-- locales/es-ar/books.json | 4 ++-- locales/pt-br/books.json | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/locales/en-us/books.json b/locales/en-us/books.json index 9d31095b..6e179a27 100644 --- a/locales/en-us/books.json +++ b/locales/en-us/books.json @@ -1,12 +1,12 @@ { "1": { - "title": "First Cycle", + "title": "Initial", "description": "Challenges of Teachers` Handbook \"Computer Science in the classroom, 1st cycle of elementary school\"" }, "2" : { - "title": "Second Cycle", + "title": "Intermediate", "description": "Challenges of Teachers` Book \"Activities to learn how to Program.AR\", for the 2nd cycle of elementary school, and beyond." }, diff --git a/locales/es-ar/books.json b/locales/es-ar/books.json index 283cde23..20fb9f4e 100644 --- a/locales/es-ar/books.json +++ b/locales/es-ar/books.json @@ -1,12 +1,12 @@ { "1": { - "title": "Primer Ciclo", + "title": "Inicial", "description": "Desafíos del manual para docentes \"Ciencias de la Computación para el aula, 1° ciclo de primaria\"" }, "2" : { - "title": "Segundo Ciclo", + "title": "Intermedio", "description": "Desafíos del cuaderno para docentes \"Actividades para aprender a Program.AR\", para 2° ciclo de primaria en adelante." }, diff --git a/locales/pt-br/books.json b/locales/pt-br/books.json index 3a388a4a..158ff7c1 100644 --- a/locales/pt-br/books.json +++ b/locales/pt-br/books.json @@ -1,18 +1,18 @@ { "1": { - "title": "Primeiro Ciclo", + "title": "Inicial", "description": "Desafios do manual para professores \"Informática para a sala de aula, 1º ciclo do ensino básico\"" }, "2": { - "title": "Segundo Ciclo", + "title": "intermédio", "description": "Desafios do caderno para professores \"Programa Atividades para aprender.AR\" A partir do 2º ciclo do ensino básico." }, "3": { - "title": "Avanzado", - "description": "Desafios avanzados" + "title": "Avançado", + "description": "Desafios Avançados" } } \ No newline at end of file From a16ef022cdbb09c8f6d7059acd26925a7c5aaf8c Mon Sep 17 00:00:00 2001 From: Rocio Gonzalez Date: Thu, 21 Sep 2023 17:16:23 -0300 Subject: [PATCH 25/89] Release 2.1.8 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6dbf986c..6580ff05 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "pilasbloques", - "version": "2.1.7", + "version": "2.1.8", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "pilasbloques", - "version": "2.1.7", + "version": "2.1.8", "hasInstallScript": true, "dependencies": { "@emotion/react": "^11.10.5", diff --git a/package.json b/package.json index 9d345086..32ae51c5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pilasbloques", - "version": "2.1.7", + "version": "2.1.8", "productName": "Pilas Bloques", "genericName": "Programacion con bloques", "description": "Una herramienta para aprender a programar utilizando bloques", From 894f0cac96644c19fa43d21c0fbcf39cdcbdec15 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Fri, 22 Sep 2023 09:17:46 -0300 Subject: [PATCH 26/89] capy&styles --- locales/en-us/pageNotFound.json | 5 +++ locales/es-ar/pageNotFound.json | 5 +++ locales/pt-br/pageNotFound.json | 5 +++ public/imagenes/capy_error.png | Bin 0 -> 8816 bytes src/App.tsx | 5 +++ src/components/pageNotFound/PageNotFound.tsx | 28 +++++++++++++++ .../pageNotFound/pageNotFound.module.css | 33 ++++++++++++++++++ 7 files changed, 81 insertions(+) create mode 100644 locales/en-us/pageNotFound.json create mode 100644 locales/es-ar/pageNotFound.json create mode 100644 locales/pt-br/pageNotFound.json create mode 100644 public/imagenes/capy_error.png create mode 100644 src/components/pageNotFound/PageNotFound.tsx create mode 100644 src/components/pageNotFound/pageNotFound.module.css diff --git a/locales/en-us/pageNotFound.json b/locales/en-us/pageNotFound.json new file mode 100644 index 00000000..c6e736d0 --- /dev/null +++ b/locales/en-us/pageNotFound.json @@ -0,0 +1,5 @@ +{ + "title": "Page not found", + "text": "The page you are trying to access does not exist.", + "home": "Go to home page" +} diff --git a/locales/es-ar/pageNotFound.json b/locales/es-ar/pageNotFound.json new file mode 100644 index 00000000..dd4a2317 --- /dev/null +++ b/locales/es-ar/pageNotFound.json @@ -0,0 +1,5 @@ +{ + "title": "Página no encontrada", + "text": "La página a la que intentás acceder no existe.", + "home": "Ir al inicio" +} diff --git a/locales/pt-br/pageNotFound.json b/locales/pt-br/pageNotFound.json new file mode 100644 index 00000000..9ba56d0a --- /dev/null +++ b/locales/pt-br/pageNotFound.json @@ -0,0 +1,5 @@ +{ + "title": "Página não encontrada", + "text": "A página que você está tentando acessar não existe.", + "home": "Vá para iniciar" +} diff --git a/public/imagenes/capy_error.png b/public/imagenes/capy_error.png new file mode 100644 index 0000000000000000000000000000000000000000..c91b0e96aa4a5cffff3375cb90064016f6b88dbe GIT binary patch literal 8816 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 + }, + { + path: "*", + element: } ]}]); diff --git a/src/components/pageNotFound/PageNotFound.tsx b/src/components/pageNotFound/PageNotFound.tsx new file mode 100644 index 00000000..d5aa67c7 --- /dev/null +++ b/src/components/pageNotFound/PageNotFound.tsx @@ -0,0 +1,28 @@ +import { Typography, Button, Stack, CardMedia } from "@mui/material" +import { Link } from "react-router-dom"; +import { useTranslation } from "react-i18next"; +import { Header } from "../header/Header" +import styles from "./pageNotFound.module.css" +import { Container } from "@mui/material"; + +export const PageNotFound = () =>{ + const {t} = useTranslation("pageNotFound") + return <> +
+ + {t("title")} + + + + {t("text")} + + + + + + +} \ No newline at end of file diff --git a/src/components/pageNotFound/pageNotFound.module.css b/src/components/pageNotFound/pageNotFound.module.css new file mode 100644 index 00000000..8b2c29bb --- /dev/null +++ b/src/components/pageNotFound/pageNotFound.module.css @@ -0,0 +1,33 @@ +.container{ + text-align: justify; + flex-wrap: wrap; + display: flex !important; + flex-direction: column; + align-items: center; +} +.title{ + padding: 10px 0px; + text-align: center; +} + +.text{ + padding: 30px 0px; + text-align: center; +} + +.image { + display: flex; + animation: 1s anim; +} + +@keyframes anim { + 0% { + transform: scale(0.3); + } + 50% { + transform: scale(1.3); + } + 100% { + transform: scale(1); + } +} From 28b2a2887dec3f6d5052f429c16fc34162cfd39c Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Fri, 22 Sep 2023 09:52:32 -0300 Subject: [PATCH 27/89] principiante --- locales/en-us/books.json | 6 +++--- locales/es-ar/books.json | 6 +++--- locales/pt-br/books.json | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/locales/en-us/books.json b/locales/en-us/books.json index 6e179a27..dca4735e 100644 --- a/locales/en-us/books.json +++ b/locales/en-us/books.json @@ -1,17 +1,17 @@ { "1": { - "title": "Initial", + "title": "Beginner Level", "description": "Challenges of Teachers` Handbook \"Computer Science in the classroom, 1st cycle of elementary school\"" }, "2" : { - "title": "Intermediate", + "title": "Intermediate Level", "description": "Challenges of Teachers` Book \"Activities to learn how to Program.AR\", for the 2nd cycle of elementary school, and beyond." }, "3" : { - "title": "Advanced", + "title": "Advanced Level", "description": "Advanced challenges" } diff --git a/locales/es-ar/books.json b/locales/es-ar/books.json index 20fb9f4e..2b966c9d 100644 --- a/locales/es-ar/books.json +++ b/locales/es-ar/books.json @@ -1,17 +1,17 @@ { "1": { - "title": "Inicial", + "title": "Nivel Principiante", "description": "Desafíos del manual para docentes \"Ciencias de la Computación para el aula, 1° ciclo de primaria\"" }, "2" : { - "title": "Intermedio", + "title": "Nivel Intermedio", "description": "Desafíos del cuaderno para docentes \"Actividades para aprender a Program.AR\", para 2° ciclo de primaria en adelante." }, "3" : { - "title": "Avanzado", + "title": "Nivel Avanzado", "description": "Desafios avanzados" } diff --git a/locales/pt-br/books.json b/locales/pt-br/books.json index 158ff7c1..beeff343 100644 --- a/locales/pt-br/books.json +++ b/locales/pt-br/books.json @@ -1,17 +1,17 @@ { "1": { - "title": "Inicial", + "title": "Nível Principiante", "description": "Desafios do manual para professores \"Informática para a sala de aula, 1º ciclo do ensino básico\"" }, "2": { - "title": "intermédio", + "title": "Nível Intermédio", "description": "Desafios do caderno para professores \"Programa Atividades para aprender.AR\" A partir do 2º ciclo do ensino básico." }, "3": { - "title": "Avançado", + "title": "Nível Avançado", "description": "Desafios Avançados" } From 0c0f5af4788a8b959143a7049c7b245e682f3ff9 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Fri, 22 Sep 2023 13:17:16 -0300 Subject: [PATCH 28/89] namingThings --- locales/en-us/creator.json | 12 ++++++------ locales/es-ar/creator.json | 8 ++++---- .../ChallengeDetailsEdition/StatementEdition.tsx | 3 ++- .../Editor/ChallengeDetailsEdition/TitleEdition.tsx | 4 +++- .../Editor/ChallengeDetailsEdition/ToolBoxDialog.tsx | 2 +- .../creator/Editor/SceneEdition/SceneTools.tsx | 5 +++-- 6 files changed, 19 insertions(+), 15 deletions(-) diff --git a/locales/en-us/creator.json b/locales/en-us/creator.json index ee122d43..d41e889f 100644 --- a/locales/en-us/creator.json +++ b/locales/en-us/creator.json @@ -36,13 +36,13 @@ "previewModeHeader": "Challenge preview" }, "title": { - "title": "Write your challenge's title", - "button": "Write your title", + "title": "Write the challenge's title for ", + "button": "Write the title", "input": "Title" }, "statement": { - "title": "Statement", - "button": "Write your statement", + "title": "Write the challenge's statement for ", + "button": "Write the statement", "description": "Description", "clue": "Clue", "markdownTitle": "This is what your statement and clue will look like:", @@ -54,7 +54,7 @@ "tools": { "putObstacle": "Add obstacle", "putObject": "Add objects", - "putActor": "Move character", + "putActor": "Move ", "delete": "Delete" }, "scene": { @@ -62,7 +62,7 @@ "numRows": "Modify rows" }, "toolbox": { - "title": "Select available commands", + "title": "Select the challenge's commands for ", "button": "Select available commands", "categoriesHint": "When you want to use procedures there should always be categories" }, diff --git a/locales/es-ar/creator.json b/locales/es-ar/creator.json index ff08330d..3fae8880 100644 --- a/locales/es-ar/creator.json +++ b/locales/es-ar/creator.json @@ -109,12 +109,12 @@ "previewModeHeader": "Ver desafio" }, "title": { - "title": "Escribí el título del desafío", + "title": "Escribí el título del desafío para ", "button": "Escribir título", "input": "Título" }, "statement": { - "title": "Enunciado", + "title": "Escribí el enunciado del desafío para ", "button": "Escribir enunciado", "description": "Descripción", "markdownTitle": "Así se verán tu enunciado y pista:", @@ -127,7 +127,7 @@ "tools": { "putObstacle": "Añadir obstáculo", "putObject": "Añadir objetos", - "putActor": "Mover personaje", + "putActor": "Mover a ", "delete": "Borrar" }, "scene": { @@ -135,7 +135,7 @@ "numRows": "Modificar filas" }, "toolbox": { - "title": "Seleccionar comandos disponibles", + "title": "Seleccioná los comandos para el desafío de ", "button": "Seleccionar comandos disponibles", "categoriesHint": "Cuando se desee usar procedimientos siempre deberá haber categorías" }, diff --git a/src/components/creator/Editor/ChallengeDetailsEdition/StatementEdition.tsx b/src/components/creator/Editor/ChallengeDetailsEdition/StatementEdition.tsx index 48067b1d..9e8fd42d 100644 --- a/src/components/creator/Editor/ChallengeDetailsEdition/StatementEdition.tsx +++ b/src/components/creator/Editor/ChallengeDetailsEdition/StatementEdition.tsx @@ -16,6 +16,7 @@ export const StatementEdition = (props: StatementEditionType) => { const initialStatement = LocalStorage.getCreatorChallenge()!.statement.description const initialClue = LocalStorage.getCreatorChallenge()!.statement.clue + const actor = LocalStorage.getCreatorChallenge()!.scene.type const [statement, setStatement] = useState(initialStatement) const [clue, setClue] = useState(initialClue) @@ -52,7 +53,7 @@ export const StatementEdition = (props: StatementEditionType) => { onConfirm={handleOnConfirm} onCancel={handleOnCancel} isDraggable - title={t('statement.title')}> + title={`${t('statement.title')}${actor}`}> diff --git a/src/components/creator/Editor/ChallengeDetailsEdition/TitleEdition.tsx b/src/components/creator/Editor/ChallengeDetailsEdition/TitleEdition.tsx index 8beeed66..652a0c0d 100644 --- a/src/components/creator/Editor/ChallengeDetailsEdition/TitleEdition.tsx +++ b/src/components/creator/Editor/ChallengeDetailsEdition/TitleEdition.tsx @@ -11,6 +11,8 @@ export const TitleEdition = () => { const { t } = useTranslation('creator'); const initialTitle = LocalStorage.getCreatorChallenge()!.title + const actor = LocalStorage.getCreatorChallenge()!.scene.type + const [titleInProgress, setTitleInProgress] = useState(initialTitle); const [dialogOpen, setDialogOpen] = useState(false) @@ -40,7 +42,7 @@ export const TitleEdition = () => { dialogProps={{open: dialogOpen}} onConfirm={handleOnConfirm} onCancel={handleOnCancel} - title={t('title.title')}> + title={`${t('title.title')}${actor}`}> diff --git a/src/components/creator/Editor/ChallengeDetailsEdition/ToolBoxDialog.tsx b/src/components/creator/Editor/ChallengeDetailsEdition/ToolBoxDialog.tsx index dfad3d4b..eaad0055 100644 --- a/src/components/creator/Editor/ChallengeDetailsEdition/ToolBoxDialog.tsx +++ b/src/components/creator/Editor/ChallengeDetailsEdition/ToolBoxDialog.tsx @@ -67,7 +67,7 @@ export const ToolBoxDialog = () => { onConfirm={handleOnConfirm} onCancel={handleOnCancel} isDraggable - title={t('toolbox.title')}> + title={`${t('toolbox.title')}${challenge.scene.type}`}>
{ type ToolGroupProps = { children: React.ReactNode type: string + name?: string } const ToolGroup = (props: ToolGroupProps) => {props.children} - {t(`tools.${props.type}`)} + {t(`tools.${props.type}`)}{props.name} const PutObstacleTool = () => @@ -70,7 +71,7 @@ const PutObjectTool = () => const PutActorTool = () => - + From f2d5bcf3d992724b4320b0f270fb6fe797e9ee1f Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Fri, 22 Sep 2023 13:42:22 -0300 Subject: [PATCH 29/89] SubiendoInputs --- locales/en-us/creator.json | 2 +- locales/es-ar/creator.json | 2 +- .../Editor/ChallengeDetailsEdition/StatementEdition.tsx | 2 +- .../creator/Editor/ChallengeDetailsEdition/TitleEdition.tsx | 3 ++- .../creator/Editor/MarkDownEdition/MarkdownEditor.tsx | 2 +- .../creator/Editor/MarkDownEdition/MarkdownInput.tsx | 1 + src/components/modalDialog/GenericModalDialog.tsx | 1 + 7 files changed, 8 insertions(+), 5 deletions(-) diff --git a/locales/en-us/creator.json b/locales/en-us/creator.json index d41e889f..28821014 100644 --- a/locales/en-us/creator.json +++ b/locales/en-us/creator.json @@ -43,7 +43,7 @@ "statement": { "title": "Write the challenge's statement for ", "button": "Write the statement", - "description": "Description", + "description": "Statement text", "clue": "Clue", "markdownTitle": "This is what your statement and clue will look like:", "descriptionHint": "Write a sentence for the exercise. Make it concise and clearly express the goal. You can use **bold**, _italics_ and :wink: emojis with Markdown syntax.", diff --git a/locales/es-ar/creator.json b/locales/es-ar/creator.json index 3fae8880..f2d3a197 100644 --- a/locales/es-ar/creator.json +++ b/locales/es-ar/creator.json @@ -116,7 +116,7 @@ "statement": { "title": "Escribí el enunciado del desafío para ", "button": "Escribir enunciado", - "description": "Descripción", + "description": "Texto del enunciado", "markdownTitle": "Así se verán tu enunciado y pista:", "descriptionHint": "Escribí un enunciado para el ejercicio. Que sea conciso y diga claramente el objetivo. Podés usar **negritas**, _cursivas_ y emojis :wink: con la sintaxis de Markdown.", "clue": "Pista", diff --git a/src/components/creator/Editor/ChallengeDetailsEdition/StatementEdition.tsx b/src/components/creator/Editor/ChallengeDetailsEdition/StatementEdition.tsx index 9e8fd42d..e46af0e7 100644 --- a/src/components/creator/Editor/ChallengeDetailsEdition/StatementEdition.tsx +++ b/src/components/creator/Editor/ChallengeDetailsEdition/StatementEdition.tsx @@ -14,7 +14,7 @@ export const StatementEdition = (props: StatementEditionType) => { const { t } = useTranslation('creator'); - const initialStatement = LocalStorage.getCreatorChallenge()!.statement.description + const initialStatement: string = LocalStorage.getCreatorChallenge()!.statement.description const initialClue = LocalStorage.getCreatorChallenge()!.statement.clue const actor = LocalStorage.getCreatorChallenge()!.scene.type diff --git a/src/components/creator/Editor/ChallengeDetailsEdition/TitleEdition.tsx b/src/components/creator/Editor/ChallengeDetailsEdition/TitleEdition.tsx index 652a0c0d..bc208316 100644 --- a/src/components/creator/Editor/ChallengeDetailsEdition/TitleEdition.tsx +++ b/src/components/creator/Editor/ChallengeDetailsEdition/TitleEdition.tsx @@ -12,7 +12,7 @@ export const TitleEdition = () => { const initialTitle = LocalStorage.getCreatorChallenge()!.title const actor = LocalStorage.getCreatorChallenge()!.scene.type - + const [titleInProgress, setTitleInProgress] = useState(initialTitle); const [dialogOpen, setDialogOpen] = useState(false) @@ -51,6 +51,7 @@ export const TitleEdition = () => { variant="standard" label={t('title.input')} value={titleInProgress} + autoFocus onChange={props => setTitleInProgress(props.target.value)} inputProps={{maxLength: 38}} /> diff --git a/src/components/creator/Editor/MarkDownEdition/MarkdownEditor.tsx b/src/components/creator/Editor/MarkDownEdition/MarkdownEditor.tsx index 8369c12f..8f698e61 100644 --- a/src/components/creator/Editor/MarkDownEdition/MarkdownEditor.tsx +++ b/src/components/creator/Editor/MarkDownEdition/MarkdownEditor.tsx @@ -25,8 +25,8 @@ export const MarkdownEditor = (props: MarkdownEditorProps) => { const textToShow: string = statementTextToShow === StatementTextToShow.STATEMENT ? props.statement : props.clue! return <> - {t('statement.descriptionHint')} + } \ No newline at end of file diff --git a/src/components/creator/Editor/MarkDownEdition/MarkdownInput.tsx b/src/components/creator/Editor/MarkDownEdition/MarkdownInput.tsx index 2027a8ec..f945d814 100644 --- a/src/components/creator/Editor/MarkDownEdition/MarkdownInput.tsx +++ b/src/components/creator/Editor/MarkDownEdition/MarkdownInput.tsx @@ -41,6 +41,7 @@ export const MarkdownInput = (props: MarkdownInputProps) => { <> = ({ Date: Fri, 22 Sep 2023 14:00:16 -0300 Subject: [PATCH 30/89] @asanzo suggestions --- src/components/pageNotFound/PageNotFound.tsx | 13 ++++--------- src/components/pageNotFound/pageNotFound.module.css | 8 -------- 2 files changed, 4 insertions(+), 17 deletions(-) diff --git a/src/components/pageNotFound/PageNotFound.tsx b/src/components/pageNotFound/PageNotFound.tsx index d5aa67c7..9ef77401 100644 --- a/src/components/pageNotFound/PageNotFound.tsx +++ b/src/components/pageNotFound/PageNotFound.tsx @@ -9,20 +9,15 @@ export const PageNotFound = () =>{ const {t} = useTranslation("pageNotFound") return <>
- + + {t("title")} - - - + capy {t("text")} - + } \ No newline at end of file diff --git a/src/components/pageNotFound/pageNotFound.module.css b/src/components/pageNotFound/pageNotFound.module.css index 8b2c29bb..ccd95d10 100644 --- a/src/components/pageNotFound/pageNotFound.module.css +++ b/src/components/pageNotFound/pageNotFound.module.css @@ -1,10 +1,3 @@ -.container{ - text-align: justify; - flex-wrap: wrap; - display: flex !important; - flex-direction: column; - align-items: center; -} .title{ padding: 10px 0px; text-align: center; @@ -16,7 +9,6 @@ } .image { - display: flex; animation: 1s anim; } From 34804e7da2f0ec88a31583f94ba5abc56a4aad30 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Fri, 22 Sep 2023 14:01:44 -0300 Subject: [PATCH 31/89] indents --- src/components/pageNotFound/PageNotFound.tsx | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/components/pageNotFound/PageNotFound.tsx b/src/components/pageNotFound/PageNotFound.tsx index 9ef77401..fea47a6b 100644 --- a/src/components/pageNotFound/PageNotFound.tsx +++ b/src/components/pageNotFound/PageNotFound.tsx @@ -8,16 +8,14 @@ import { Container } from "@mui/material"; export const PageNotFound = () =>{ const {t} = useTranslation("pageNotFound") return <> -
- - - {t("title")} - capy - {t("text")} - - - - - +
+ + {t("title")} + capy + {t("text")} + + + + } \ No newline at end of file From 174d0d1abc09ea121383745e12d41d42b7d5efc9 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Fri, 22 Sep 2023 14:46:17 -0300 Subject: [PATCH 32/89] doing --- locales/en-us/creator.json | 2 -- locales/es-ar/creator.json | 2 -- .../creator/Editor/MarkDownEdition/MarkdownEditor.tsx | 1 - .../creator/Editor/MarkDownEdition/MarkdownInput.tsx | 3 +-- .../creator/Editor/MarkDownEdition/MarkdownResult.tsx | 1 - src/components/modalDialog/GenericModalDialog.tsx | 2 +- 6 files changed, 2 insertions(+), 9 deletions(-) diff --git a/locales/en-us/creator.json b/locales/en-us/creator.json index 28821014..c41f7143 100644 --- a/locales/en-us/creator.json +++ b/locales/en-us/creator.json @@ -45,8 +45,6 @@ "button": "Write the statement", "description": "Statement text", "clue": "Clue", - "markdownTitle": "This is what your statement and clue will look like:", - "descriptionHint": "Write a sentence for the exercise. Make it concise and clearly express the goal. You can use **bold**, _italics_ and :wink: emojis with Markdown syntax.", "includeClue": "Include a clue", "defaultDescription": "Your **statement** will look like this...", "defaultTitle": "Write your challenge's title..." diff --git a/locales/es-ar/creator.json b/locales/es-ar/creator.json index f2d3a197..829b273b 100644 --- a/locales/es-ar/creator.json +++ b/locales/es-ar/creator.json @@ -117,8 +117,6 @@ "title": "Escribí el enunciado del desafío para ", "button": "Escribir enunciado", "description": "Texto del enunciado", - "markdownTitle": "Así se verán tu enunciado y pista:", - "descriptionHint": "Escribí un enunciado para el ejercicio. Que sea conciso y diga claramente el objetivo. Podés usar **negritas**, _cursivas_ y emojis :wink: con la sintaxis de Markdown.", "clue": "Pista", "includeClue": "Incluir una pista", "defaultDescription": "Así se verá tu **enunciado**...", diff --git a/src/components/creator/Editor/MarkDownEdition/MarkdownEditor.tsx b/src/components/creator/Editor/MarkDownEdition/MarkdownEditor.tsx index 8f698e61..2ec870a0 100644 --- a/src/components/creator/Editor/MarkDownEdition/MarkdownEditor.tsx +++ b/src/components/creator/Editor/MarkDownEdition/MarkdownEditor.tsx @@ -25,7 +25,6 @@ export const MarkdownEditor = (props: MarkdownEditorProps) => { const textToShow: string = statementTextToShow === StatementTextToShow.STATEMENT ? props.statement : props.clue! return <> - {t('statement.descriptionHint')} diff --git a/src/components/creator/Editor/MarkDownEdition/MarkdownInput.tsx b/src/components/creator/Editor/MarkDownEdition/MarkdownInput.tsx index f945d814..7e5cca35 100644 --- a/src/components/creator/Editor/MarkDownEdition/MarkdownInput.tsx +++ b/src/components/creator/Editor/MarkDownEdition/MarkdownInput.tsx @@ -1,4 +1,4 @@ -import { Switch, FormControlLabel, TextField} from "@mui/material"; +import { Switch, FormControlLabel, TextField } from "@mui/material"; import { StatementTextToShow } from "./MarkdownEditor"; import { useTranslation } from "react-i18next"; import { useState } from "react"; @@ -52,7 +52,6 @@ export const MarkdownInput = (props: MarkdownInputProps) => { sx={{marginTop: '10px'}} id="statement-input" /> - } label={t("statement.includeClue")}/> {clueIsEnabled ? diff --git a/src/components/creator/Editor/MarkDownEdition/MarkdownResult.tsx b/src/components/creator/Editor/MarkDownEdition/MarkdownResult.tsx index 7dfc7991..c072cea9 100644 --- a/src/components/creator/Editor/MarkDownEdition/MarkdownResult.tsx +++ b/src/components/creator/Editor/MarkDownEdition/MarkdownResult.tsx @@ -22,7 +22,6 @@ export const MarkdownResult = (props: MarkdownResultProps) => { const urlImage = `imagenes/sceneImages/${LocalStorage.getCreatorChallenge()!.scene.type}/tool.png` return <> - {t('statement.markdownTitle')} actor diff --git a/src/components/modalDialog/GenericModalDialog.tsx b/src/components/modalDialog/GenericModalDialog.tsx index 55c7beaa..25458b2b 100644 --- a/src/components/modalDialog/GenericModalDialog.tsx +++ b/src/components/modalDialog/GenericModalDialog.tsx @@ -55,7 +55,7 @@ export const GenericModalDialog: FC = ({ PaperComponent={isDraggable ? PaperComponent : undefined} aria-labelledby="draggable-dialog" > - {title} + {title} {children} From b38cb081b0044ed1e4de8fd45fb7090276a5e530 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Mon, 25 Sep 2023 09:36:27 -0300 Subject: [PATCH 33/89] update --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6580ff05..79dd358f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -38,7 +38,7 @@ "web-vitals": "^2.1.4" }, "devDependencies": { - "electron": "^22.3.21", + "electron": "^22.3.24", "electron-packager": "^17.1.1", "electron-rebuild": "^3.2.9", "makensis": "^2.0.5", diff --git a/package.json b/package.json index 32ae51c5..1916e434 100644 --- a/package.json +++ b/package.json @@ -76,7 +76,7 @@ ] }, "devDependencies": { - "electron": "^22.3.21", + "electron": "22.3.24", "electron-packager": "^17.1.1", "electron-rebuild": "^3.2.9", "makensis": "^2.0.5", From 2075c8a7a206bf672ff926bcd24ba977df070418 Mon Sep 17 00:00:00 2001 From: Alfredo Sanzo Date: Mon, 25 Sep 2023 19:25:52 -0300 Subject: [PATCH 34/89] Making copyEmberPB script blow up if error --- package-lock.json | 2 +- scripts/copyEmberPB.sh | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 79dd358f..9f3a56db 100644 --- a/package-lock.json +++ b/package-lock.json @@ -38,7 +38,7 @@ "web-vitals": "^2.1.4" }, "devDependencies": { - "electron": "^22.3.24", + "electron": "22.3.24", "electron-packager": "^17.1.1", "electron-rebuild": "^3.2.9", "makensis": "^2.0.5", diff --git a/scripts/copyEmberPB.sh b/scripts/copyEmberPB.sh index 755ee99c..30eae95b 100644 --- a/scripts/copyEmberPB.sh +++ b/scripts/copyEmberPB.sh @@ -1,4 +1,4 @@ -PB_APP_VERSION="1.15.1" +PB_APP_VERSION="1.15.4" echo "==> Downloading Pilas Bloques app online..." mkdir -p tmp @@ -9,4 +9,9 @@ EMBERPB_FOLDER="public/emberPB" rm -rf ${EMBERPB_FOLDER} mkdir -p ${EMBERPB_FOLDER} tar -xf tmp/pilasbloques-${PB_APP_VERSION}-html.tar.gz -C ${EMBERPB_FOLDER} --strip-components 1 +tarsucceeded=$? rm tmp/pilasbloques-${PB_APP_VERSION}-html.tar.gz +if [ $tarsucceeded -ne 0 ]; then + exit 1 +fi + From 52f0db12c9ee96354553971e3c5053faf1e9a882 Mon Sep 17 00:00:00 2001 From: Alfredo Sanzo Date: Mon, 25 Sep 2023 19:44:15 -0300 Subject: [PATCH 35/89] warnings fix --- .../creator/Editor/MarkDownEdition/MarkdownEditor.tsx | 6 ------ .../creator/Editor/MarkDownEdition/MarkdownResult.tsx | 4 +--- src/components/pageNotFound/PageNotFound.tsx | 3 +-- 3 files changed, 2 insertions(+), 11 deletions(-) diff --git a/src/components/creator/Editor/MarkDownEdition/MarkdownEditor.tsx b/src/components/creator/Editor/MarkDownEdition/MarkdownEditor.tsx index 2ec870a0..96417c9b 100644 --- a/src/components/creator/Editor/MarkDownEdition/MarkdownEditor.tsx +++ b/src/components/creator/Editor/MarkDownEdition/MarkdownEditor.tsx @@ -1,9 +1,6 @@ -import { Typography } from "@mui/material" import { MarkdownInput } from "./MarkdownInput" import { MarkdownResult } from "./MarkdownResult" import { useState } from "react" -import { useTranslation } from "react-i18next" -import { useThemeContext } from "../../../../theme/ThemeContext" type MarkdownEditorProps = { statement: string @@ -18,9 +15,6 @@ export enum StatementTextToShow { } export const MarkdownEditor = (props: MarkdownEditorProps) => { - const { theme } = useThemeContext() - - const { t } = useTranslation('creator') const [statementTextToShow, setShowStatement] = useState(StatementTextToShow.STATEMENT) const textToShow: string = statementTextToShow === StatementTextToShow.STATEMENT ? props.statement : props.clue! diff --git a/src/components/creator/Editor/MarkDownEdition/MarkdownResult.tsx b/src/components/creator/Editor/MarkDownEdition/MarkdownResult.tsx index c072cea9..6ba5da9f 100644 --- a/src/components/creator/Editor/MarkDownEdition/MarkdownResult.tsx +++ b/src/components/creator/Editor/MarkDownEdition/MarkdownResult.tsx @@ -1,10 +1,9 @@ import ReactMarkdown from "react-markdown"; -import { Button, Stack, Typography, darken } from "@mui/material"; +import { Button, Stack, darken } from "@mui/material"; import { WbIncandescent, MenuBook } from"@mui/icons-material" import { PBCard } from "../../../PBCard"; import remarkGfm from 'remark-gfm'; import remarkemoji from 'remark-emoji'; -import { useTranslation } from "react-i18next"; import { LocalStorage } from "../../../../localStorage"; import { StatementTextToShow } from "./MarkdownEditor"; import { useThemeContext } from "../../../../theme/ThemeContext"; @@ -18,7 +17,6 @@ type MarkdownResultProps = { export const MarkdownResult = (props: MarkdownResultProps) => { const { theme } = useThemeContext() - const { t } = useTranslation('creator'); const urlImage = `imagenes/sceneImages/${LocalStorage.getCreatorChallenge()!.scene.type}/tool.png` return <> diff --git a/src/components/pageNotFound/PageNotFound.tsx b/src/components/pageNotFound/PageNotFound.tsx index fea47a6b..9ed00366 100644 --- a/src/components/pageNotFound/PageNotFound.tsx +++ b/src/components/pageNotFound/PageNotFound.tsx @@ -1,9 +1,8 @@ -import { Typography, Button, Stack, CardMedia } from "@mui/material" +import { Typography, Button, Stack } from "@mui/material" import { Link } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { Header } from "../header/Header" import styles from "./pageNotFound.module.css" -import { Container } from "@mui/material"; export const PageNotFound = () =>{ const {t} = useTranslation("pageNotFound") From 70a2ebd107f0d35d2098e6fe60140541fd2f56e1 Mon Sep 17 00:00:00 2001 From: Alfredo Sanzo Date: Mon, 25 Sep 2023 19:44:39 -0300 Subject: [PATCH 36/89] Release 2.1.9 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9f3a56db..e26b5666 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "pilasbloques", - "version": "2.1.8", + "version": "2.1.9", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "pilasbloques", - "version": "2.1.8", + "version": "2.1.9", "hasInstallScript": true, "dependencies": { "@emotion/react": "^11.10.5", diff --git a/package.json b/package.json index 1916e434..56157233 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pilasbloques", - "version": "2.1.8", + "version": "2.1.9", "productName": "Pilas Bloques", "genericName": "Programacion con bloques", "description": "Una herramienta para aprender a programar utilizando bloques", From 991ca69ff1673f2d5d620315e4799ed42724ef22 Mon Sep 17 00:00:00 2001 From: Rocio Gonzalez Date: Tue, 26 Sep 2023 12:05:09 -0300 Subject: [PATCH 37/89] cambio de imagenes del obstaculo de las tools --- public/imagenes/sceneImages/Chuy/O.png | Bin 11620 -> 19415 bytes public/imagenes/sceneImages/Yvoty/O.png | Bin 13175 -> 14110 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/public/imagenes/sceneImages/Chuy/O.png b/public/imagenes/sceneImages/Chuy/O.png index dd9ba9539beee9e80cfdaff8b00cc92bddcb996a..c8ff7ff3fbd741f38c7c43bbcab5e023a7923d6b 100644 GIT binary patch literal 19415 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 AIRF3v literal 11620 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

l) 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 diff --git a/public/imagenes/sceneImages/Yvoty/O.png b/public/imagenes/sceneImages/Yvoty/O.png index 92e001df5b9f017f6aa1b14b5c48d9aa887b686e..b417d4445cedd42f26f771edcb6b4ae9cf236681 100644 GIT binary patch literal 14110 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 literal 13175 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

-TBnH;>h$oox;jey``-TAGn8ZETb~^WDWk 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 Date: Tue, 26 Sep 2023 12:26:18 -0300 Subject: [PATCH 38/89] redondeo de fondo de personajes en el selector --- src/components/creator/ActorSelection/selection.module.css | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/creator/ActorSelection/selection.module.css b/src/components/creator/ActorSelection/selection.module.css index 6e96d62c..8b7c0fa9 100644 --- a/src/components/creator/ActorSelection/selection.module.css +++ b/src/components/creator/ActorSelection/selection.module.css @@ -28,6 +28,7 @@ justify-content: center; align-items: center; height: 100%; + border-radius: 10px; } .selection-text-info { From e46e49acfa1f755887b751020aa928e03e65e4f1 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Tue, 26 Sep 2023 14:30:08 -0300 Subject: [PATCH 39/89] isLoading --- package-lock.json | 2 +- src/components/emberView/EmberView.tsx | 23 ++++++++++++++++++----- src/index.tsx | 4 +++- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 79dd358f..9f3a56db 100644 --- a/package-lock.json +++ b/package-lock.json @@ -38,7 +38,7 @@ "web-vitals": "^2.1.4" }, "devDependencies": { - "electron": "^22.3.24", + "electron": "22.3.24", "electron-packager": "^17.1.1", "electron-rebuild": "^3.2.9", "makensis": "^2.0.5", diff --git a/src/components/emberView/EmberView.tsx b/src/components/emberView/EmberView.tsx index 337d0f96..7ced2097 100644 --- a/src/components/emberView/EmberView.tsx +++ b/src/components/emberView/EmberView.tsx @@ -1,4 +1,5 @@ -import { Box } from "@mui/material" +import { Box, CircularProgress } from "@mui/material" +import { useEffect, useState } from 'react' import styles from './ember-view.module.css'; type EmberViewProps = { @@ -7,8 +8,20 @@ type EmberViewProps = { } export const EmberView = (props: EmberViewProps) => { + const [loaded, setLoaded] = useState(false) + + + return + + {!loaded ? : <> } +