mirror of
https://github.com/scratchfoundation/scratch-www.git
synced 2024-11-24 08:08:18 -05:00
Merge pull request #5152 from LLK/develop
merge from develop to release branch
This commit is contained in:
commit
5aeee265b7
12 changed files with 403 additions and 164 deletions
318
package-lock.json
generated
318
package-lock.json
generated
|
@ -1380,7 +1380,6 @@
|
|||
"version": "7.13.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz",
|
||||
"integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"regenerator-runtime": "^0.13.4"
|
||||
},
|
||||
|
@ -1388,8 +1387,7 @@
|
|||
"regenerator-runtime": {
|
||||
"version": "0.13.7",
|
||||
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz",
|
||||
"integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==",
|
||||
"dev": true
|
||||
"integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew=="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -1463,10 +1461,27 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"@formatjs/ecma402-abstract": {
|
||||
"version": "1.6.3",
|
||||
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.6.3.tgz",
|
||||
"integrity": "sha512-7ijswObmYXabVy5GvcpKG29jbyJ9rGtFdRBdmdQvoDmMo0PwlOl/L08GtrjA4YWLAZ0j2owb2YrRLGNAvLBk+Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tslib": "^2.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"tslib": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
|
||||
"integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"@formatjs/intl-getcanonicallocales": {
|
||||
"version": "1.5.6",
|
||||
"resolved": "https://registry.npmjs.org/@formatjs/intl-getcanonicallocales/-/intl-getcanonicallocales-1.5.6.tgz",
|
||||
"integrity": "sha512-CRnQEuaTsvm3+/6Hxucxb4rN0GY78I2k5BbjvODHsKEWgGIHbTRoOmu6YSbo5dXmxOeOKa3VYTXv3crDKHhQXA==",
|
||||
"version": "1.5.7",
|
||||
"resolved": "https://registry.npmjs.org/@formatjs/intl-getcanonicallocales/-/intl-getcanonicallocales-1.5.7.tgz",
|
||||
"integrity": "sha512-raPV3Dw7CBC9kPvKdgxkVGgwzYBsQDDG9qXGWblpj/zR+ZJ6Q2V+Co5jZhrviy6lq3qaM2T1Itc0ibvvil1tBw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"cldr-core": "38",
|
||||
|
@ -1482,26 +1497,17 @@
|
|||
}
|
||||
},
|
||||
"@formatjs/intl-locale": {
|
||||
"version": "2.4.19",
|
||||
"resolved": "https://registry.npmjs.org/@formatjs/intl-locale/-/intl-locale-2.4.19.tgz",
|
||||
"integrity": "sha512-h9TxoSvsu1pNoJHXCdhcQb98hW0b8Plbs3VTR8jDg2nc0/9/XpM0cqhA+j7qMhbLBX3KhTLO86MqQ49pHSjduA==",
|
||||
"version": "2.4.20",
|
||||
"resolved": "https://registry.npmjs.org/@formatjs/intl-locale/-/intl-locale-2.4.20.tgz",
|
||||
"integrity": "sha512-ZrVFxKab+W6jFP6WEYsNW0b7IlGYnCS20fdLN6u0LwPCPYRP5oqHBl0FFVD2+aNnQ1T/21Aol54fCr5LdN/49Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@formatjs/ecma402-abstract": "1.6.2",
|
||||
"@formatjs/intl-getcanonicallocales": "1.5.6",
|
||||
"@formatjs/ecma402-abstract": "1.6.3",
|
||||
"@formatjs/intl-getcanonicallocales": "1.5.7",
|
||||
"cldr-core": "38",
|
||||
"tslib": "^2.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@formatjs/ecma402-abstract": {
|
||||
"version": "1.6.2",
|
||||
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.6.2.tgz",
|
||||
"integrity": "sha512-aLBODrSRhHaL/0WdQ0T2UsGqRbdtRRHqqrs4zwNQoRsGBEtEAvlj/rgr6Uea4PSymVJrbZBoAyECM2Z3Pq4i0g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tslib": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"tslib": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
|
||||
|
@ -1511,24 +1517,15 @@
|
|||
}
|
||||
},
|
||||
"@formatjs/intl-pluralrules": {
|
||||
"version": "4.0.11",
|
||||
"resolved": "https://registry.npmjs.org/@formatjs/intl-pluralrules/-/intl-pluralrules-4.0.11.tgz",
|
||||
"integrity": "sha512-NkQl6eBJKMSMmNCan2gzpErqbw7j1SiHzqAQF3+coAKwB74E89hAGTigvnCKEGpMf+hHysL4+wThx5IJutoT5Q==",
|
||||
"version": "4.0.12",
|
||||
"resolved": "https://registry.npmjs.org/@formatjs/intl-pluralrules/-/intl-pluralrules-4.0.12.tgz",
|
||||
"integrity": "sha512-jXXsWGQbBMvuhvxuG1AXBMMNMS1ZphSt/rWsGo6bE3KyWmddJnnVokeUD8E2sTtXoCJZoGUQkOxxjFa/gGLyxw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@formatjs/ecma402-abstract": "1.6.2",
|
||||
"@formatjs/ecma402-abstract": "1.6.3",
|
||||
"tslib": "^2.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@formatjs/ecma402-abstract": {
|
||||
"version": "1.6.2",
|
||||
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.6.2.tgz",
|
||||
"integrity": "sha512-aLBODrSRhHaL/0WdQ0T2UsGqRbdtRRHqqrs4zwNQoRsGBEtEAvlj/rgr6Uea4PSymVJrbZBoAyECM2Z3Pq4i0g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tslib": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"tslib": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
|
||||
|
@ -1538,24 +1535,15 @@
|
|||
}
|
||||
},
|
||||
"@formatjs/intl-relativetimeformat": {
|
||||
"version": "8.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@formatjs/intl-relativetimeformat/-/intl-relativetimeformat-8.1.2.tgz",
|
||||
"integrity": "sha512-LZUxbc9GHVGmDc4sqGAXugoxhvZV7EG2lG2c0aKERup2ixvmDMbbEN3iEEr5aKkP7YyGxXxgqDn2dwg7QCPR6Q==",
|
||||
"version": "8.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@formatjs/intl-relativetimeformat/-/intl-relativetimeformat-8.1.3.tgz",
|
||||
"integrity": "sha512-uUbtr4NRKgHK66bxO98RQlXypfRA5cto6nsFpgwe5wf1SWLBqxcNoo+zdAIftdvHnxPC4QH6oykMf2aYLm+pbA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@formatjs/ecma402-abstract": "1.6.2",
|
||||
"@formatjs/ecma402-abstract": "1.6.3",
|
||||
"tslib": "^2.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@formatjs/ecma402-abstract": {
|
||||
"version": "1.6.2",
|
||||
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.6.2.tgz",
|
||||
"integrity": "sha512-aLBODrSRhHaL/0WdQ0T2UsGqRbdtRRHqqrs4zwNQoRsGBEtEAvlj/rgr6Uea4PSymVJrbZBoAyECM2Z3Pq4i0g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tslib": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"tslib": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
|
||||
|
@ -8463,6 +8451,16 @@
|
|||
"flat-cache": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"file-loader": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/file-loader/-/file-loader-2.0.0.tgz",
|
||||
"integrity": "sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"loader-utils": "^1.0.2",
|
||||
"schema-utils": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"filename-regex": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
|
||||
|
@ -10928,6 +10926,19 @@
|
|||
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
|
||||
"dev": true
|
||||
},
|
||||
"history": {
|
||||
"version": "4.10.1",
|
||||
"resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz",
|
||||
"integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.1.2",
|
||||
"loose-envify": "^1.2.0",
|
||||
"resolve-pathname": "^3.0.0",
|
||||
"tiny-invariant": "^1.0.2",
|
||||
"tiny-warning": "^1.0.0",
|
||||
"value-equal": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"hmac-drbg": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
|
||||
|
@ -11609,6 +11620,21 @@
|
|||
"integrity": "sha512-Zv/u8wRpekckv0cLkwpVdABYST4hZNTDaX7reFetrYTJwxExR2VyTqQm+l0WmL0Qo8Mjb9Tf33qnfj0T7pjxdQ==",
|
||||
"dev": true
|
||||
},
|
||||
"intl-messageformat": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-2.2.0.tgz",
|
||||
"integrity": "sha1-NFvNRt5jC3aDMwwuUhd/9eq0hPw=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"intl-messageformat-parser": "1.4.0"
|
||||
}
|
||||
},
|
||||
"intl-messageformat-parser": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz",
|
||||
"integrity": "sha1-tD1FqXRoytvkQzHXS7Ho3qRPwHU=",
|
||||
"dev": true
|
||||
},
|
||||
"intl-relativeformat": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/intl-relativeformat/-/intl-relativeformat-2.2.0.tgz",
|
||||
|
@ -14929,6 +14955,15 @@
|
|||
"dom-walk": "^0.1.0"
|
||||
}
|
||||
},
|
||||
"mini-create-react-context": {
|
||||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz",
|
||||
"integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.12.1",
|
||||
"tiny-warning": "^1.0.3"
|
||||
}
|
||||
},
|
||||
"minilog": {
|
||||
"version": "2.0.8",
|
||||
"resolved": "https://registry.npmjs.org/minilog/-/minilog-2.0.8.tgz",
|
||||
|
@ -18731,11 +18766,6 @@
|
|||
"requires": {
|
||||
"lodash.debounce": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -18764,6 +18794,82 @@
|
|||
"prop-types": "^15.5.7"
|
||||
}
|
||||
},
|
||||
"react-router": {
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/react-router/-/react-router-5.2.0.tgz",
|
||||
"integrity": "sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw==",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.1.2",
|
||||
"history": "^4.9.0",
|
||||
"hoist-non-react-statics": "^3.1.0",
|
||||
"loose-envify": "^1.3.1",
|
||||
"mini-create-react-context": "^0.4.0",
|
||||
"path-to-regexp": "^1.7.0",
|
||||
"prop-types": "^15.6.2",
|
||||
"react-is": "^16.6.0",
|
||||
"tiny-invariant": "^1.0.2",
|
||||
"tiny-warning": "^1.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"hoist-non-react-statics": {
|
||||
"version": "3.3.2",
|
||||
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
|
||||
"integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
|
||||
"requires": {
|
||||
"react-is": "^16.7.0"
|
||||
}
|
||||
},
|
||||
"isarray": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
|
||||
"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
|
||||
},
|
||||
"path-to-regexp": {
|
||||
"version": "1.8.0",
|
||||
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz",
|
||||
"integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==",
|
||||
"requires": {
|
||||
"isarray": "0.0.1"
|
||||
}
|
||||
},
|
||||
"prop-types": {
|
||||
"version": "15.7.2",
|
||||
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
|
||||
"integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
|
||||
"requires": {
|
||||
"loose-envify": "^1.4.0",
|
||||
"object-assign": "^4.1.1",
|
||||
"react-is": "^16.8.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"react-router-dom": {
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.2.0.tgz",
|
||||
"integrity": "sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA==",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.1.2",
|
||||
"history": "^4.9.0",
|
||||
"loose-envify": "^1.3.1",
|
||||
"prop-types": "^15.6.2",
|
||||
"react-router": "5.2.0",
|
||||
"tiny-invariant": "^1.0.2",
|
||||
"tiny-warning": "^1.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"prop-types": {
|
||||
"version": "15.7.2",
|
||||
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
|
||||
"integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
|
||||
"requires": {
|
||||
"loose-envify": "^1.4.0",
|
||||
"object-assign": "^4.1.1",
|
||||
"react-is": "^16.8.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"react-side-effect": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-1.1.5.tgz",
|
||||
|
@ -20018,6 +20124,11 @@
|
|||
"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
|
||||
"dev": true
|
||||
},
|
||||
"resolve-pathname": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz",
|
||||
"integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng=="
|
||||
},
|
||||
"resolve-protobuf-schema": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz",
|
||||
|
@ -20882,9 +20993,9 @@
|
|||
}
|
||||
},
|
||||
"scratch-blocks": {
|
||||
"version": "0.1.0-prerelease.20210301035002",
|
||||
"resolved": "https://registry.npmjs.org/scratch-blocks/-/scratch-blocks-0.1.0-prerelease.20210301035002.tgz",
|
||||
"integrity": "sha512-+OB8MdKQ9q/h/0w6OCkUB6IfExxGdcWmm3iX6YnaqEEQfvSBrghWc9rKXzoz7esPrhgBHvwF+zR0wLjj9qw4Ig==",
|
||||
"version": "0.1.0-prerelease.20210317033352",
|
||||
"resolved": "https://registry.npmjs.org/scratch-blocks/-/scratch-blocks-0.1.0-prerelease.20210317033352.tgz",
|
||||
"integrity": "sha512-K0cplZ5XSbQK5cjg49QQBlM9vlKLpdhIVeCLz/cXPXg/KLc1gpNIvhI4pQl3SiCcIAZP3BGnIdf0YUiyp58zjw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"exports-loader": "0.6.3",
|
||||
|
@ -20892,9 +21003,9 @@
|
|||
}
|
||||
},
|
||||
"scratch-gui": {
|
||||
"version": "0.1.0-prerelease.20210302213127",
|
||||
"resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-0.1.0-prerelease.20210302213127.tgz",
|
||||
"integrity": "sha512-qFlIt/bYK2mCCbng6Z4S5uXCVmOfb2uThRa1a7KKJ7+oj4ZQKZmPeeUK2L7eauGJSxzuv+YEAx2QgQECV+PTsA==",
|
||||
"version": "0.1.0-prerelease.20210317035743",
|
||||
"resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-0.1.0-prerelease.20210317035743.tgz",
|
||||
"integrity": "sha512-r+s7QMVKFu2xqZCZxswdRxtJXwIemaiw9gxVoP5Fx5VVpJGZ6rwkNyDigRDupV8g7rRK7JXBkBAFDQDuH/ReBw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"arraybuffer-loader": "^1.0.6",
|
||||
|
@ -20945,13 +21056,14 @@
|
|||
"redux": "3.7.2",
|
||||
"redux-throttle": "0.1.1",
|
||||
"scratch-audio": "0.1.0-prerelease.20200528195344",
|
||||
"scratch-blocks": "0.1.0-prerelease.20210301035002",
|
||||
"scratch-l10n": "3.11.20210301031451",
|
||||
"scratch-paint": "0.2.0-prerelease.20210301035244",
|
||||
"scratch-blocks": "0.1.0-prerelease.20210317033352",
|
||||
"scratch-l10n": "3.11.20210317031517",
|
||||
"scratch-paint": "0.2.0-prerelease.20210308034725",
|
||||
"scratch-render": "0.1.0-prerelease.20210302210916",
|
||||
"scratch-render-fonts": "1.0.0-prerelease.20200507182347",
|
||||
"scratch-storage": "1.3.3",
|
||||
"scratch-svg-renderer": "0.2.0-prerelease.20210225205629",
|
||||
"scratch-vm": "0.2.0-prerelease.20210302185520",
|
||||
"scratch-vm": "0.2.0-prerelease.20210316111200",
|
||||
"startaudiocontext": "1.2.1",
|
||||
"style-loader": "^0.23.0",
|
||||
"text-encoding": "0.7.0",
|
||||
|
@ -21114,21 +21226,11 @@
|
|||
"dev": true
|
||||
},
|
||||
"electron-to-chromium": {
|
||||
"version": "1.3.678",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.678.tgz",
|
||||
"integrity": "sha512-E5ha1pE9+aWWrT2fUD5wdPBWUnYtKnEnloewbtVyrkAs79HvodOiNO4rMR94+hKbxgMFQG4fnPQACOc1cfMfBg==",
|
||||
"version": "1.3.690",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.690.tgz",
|
||||
"integrity": "sha512-zPbaSv1c8LUKqQ+scNxJKv01RYFkVVF1xli+b+3Ty8ONujHjAMg+t/COmdZqrtnS1gT+g4hbSodHillymt1Lww==",
|
||||
"dev": true
|
||||
},
|
||||
"file-loader": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/file-loader/-/file-loader-2.0.0.tgz",
|
||||
"integrity": "sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"loader-utils": "^1.0.2",
|
||||
"schema-utils": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"has-flag": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
||||
|
@ -21154,21 +21256,6 @@
|
|||
"resolve-from": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"intl-messageformat": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-2.2.0.tgz",
|
||||
"integrity": "sha1-NFvNRt5jC3aDMwwuUhd/9eq0hPw=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"intl-messageformat-parser": "1.4.0"
|
||||
}
|
||||
},
|
||||
"intl-messageformat-parser": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz",
|
||||
"integrity": "sha1-tD1FqXRoytvkQzHXS7Ho3qRPwHU=",
|
||||
"dev": true
|
||||
},
|
||||
"js-base64": {
|
||||
"version": "2.4.9",
|
||||
"resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz",
|
||||
|
@ -21361,18 +21448,6 @@
|
|||
"integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
|
||||
"dev": true
|
||||
},
|
||||
"scratch-l10n": {
|
||||
"version": "3.11.20210301031451",
|
||||
"resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.11.20210301031451.tgz",
|
||||
"integrity": "sha512-lAGy7i42yxd72wwNsb9pPW3tzxl5PBfLXXEKYFDKxsPCTnG3mY6m/qZqYTkpQ8sYycxgFkUvuUmvvWKxP1Bz6A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/cli": "^7.1.2",
|
||||
"@babel/core": "^7.1.2",
|
||||
"babel-plugin-react-intl": "^3.0.1",
|
||||
"transifex": "1.6.6"
|
||||
}
|
||||
},
|
||||
"scratch-storage": {
|
||||
"version": "1.3.3",
|
||||
"resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-1.3.3.tgz",
|
||||
|
@ -21440,9 +21515,9 @@
|
|||
}
|
||||
},
|
||||
"scratch-l10n": {
|
||||
"version": "3.11.20210310031445",
|
||||
"resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.11.20210310031445.tgz",
|
||||
"integrity": "sha512-h+xUGhPSjfXoIcYncCFAtD3+V8jblsaklV5epuhsu2l5+NTSw6ch4CafPRrzVl2UErIdxUpkRnY+fXRVgodj8w==",
|
||||
"version": "3.11.20210317031517",
|
||||
"resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.11.20210317031517.tgz",
|
||||
"integrity": "sha512-ppVEV8VX1B6+9Zp0kcctqiSSvizO+7URXyK+X2ZbANXY5P37wxWPL2xO3REyghiA51XM54NOdKYzwk1z97NYkw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/cli": "^7.1.2",
|
||||
|
@ -21453,9 +21528,9 @@
|
|||
}
|
||||
},
|
||||
"scratch-paint": {
|
||||
"version": "0.2.0-prerelease.20210301035244",
|
||||
"resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-0.2.0-prerelease.20210301035244.tgz",
|
||||
"integrity": "sha512-Br/Wh8TkxJa907VoaDPCw14mTuUMb1SDHGyoHTokJxPmoYTJ4TtDavAMJB0Ge17LWhebyubcR7Pc5qjrOwOpeg==",
|
||||
"version": "0.2.0-prerelease.20210308034725",
|
||||
"resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-0.2.0-prerelease.20210308034725.tgz",
|
||||
"integrity": "sha512-DBhOVZ1Q7TpCcUJXAUMQACWWOZMFJyBmXvOf11ifP6opiQgjLbSBvUqYySPQckgkj38KDqDED90zAHVFga//eA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@scratch/paper": "0.11.20200728195508",
|
||||
|
@ -21489,6 +21564,15 @@
|
|||
"requires": {
|
||||
"microee": "0.0.6"
|
||||
}
|
||||
},
|
||||
"scratch-render-fonts": {
|
||||
"version": "1.0.0-prerelease.20200507182347",
|
||||
"resolved": "https://registry.npmjs.org/scratch-render-fonts/-/scratch-render-fonts-1.0.0-prerelease.20200507182347.tgz",
|
||||
"integrity": "sha512-tVt2s7lxsBhme9WKIZTnluMerdJVGEc80QSrDdIIzUvHXGCIYkLh6j7ytwXcyq2UsA34d93op9+I9Bh1SPkQkA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"base64-loader": "1.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -21681,9 +21765,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"scratch-vm": {
|
||||
"version": "0.2.0-prerelease.20210302185520",
|
||||
"resolved": "https://registry.npmjs.org/scratch-vm/-/scratch-vm-0.2.0-prerelease.20210302185520.tgz",
|
||||
"integrity": "sha512-yy7TQtb7I4ulDe3W1IfWGtdNNg7ZpJJRVk0FKbqUWO0COxFpGINP8O8Dsel9AjmuBRdN3JxIFjhz6qIBNeMrAA==",
|
||||
"version": "0.2.0-prerelease.20210316111200",
|
||||
"resolved": "https://registry.npmjs.org/scratch-vm/-/scratch-vm-0.2.0-prerelease.20210316111200.tgz",
|
||||
"integrity": "sha512-KUlPZ8z0RZqNd1N2JABFCeYWNsQ1ghlzMZuAcjQ7nt3xpISr7pGv9dwG01WI8PohraUxsGRbzw8jAhTegbB1nw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@vernier/godirect": "1.5.0",
|
||||
|
@ -21698,7 +21782,6 @@
|
|||
"immutable": "3.8.1",
|
||||
"jszip": "^3.1.5",
|
||||
"minilog": "3.1.0",
|
||||
"nets": "3.2.0",
|
||||
"scratch-parser": "5.0.0",
|
||||
"scratch-sb1-converter": "0.2.7",
|
||||
"scratch-translate-extension-languages": "0.0.20191118205314",
|
||||
|
@ -25451,6 +25534,11 @@
|
|||
"integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==",
|
||||
"dev": true
|
||||
},
|
||||
"tiny-invariant": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz",
|
||||
"integrity": "sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw=="
|
||||
},
|
||||
"tiny-sdf": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/tiny-sdf/-/tiny-sdf-1.0.2.tgz",
|
||||
|
@ -25460,8 +25548,7 @@
|
|||
"tiny-warning": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz",
|
||||
"integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==",
|
||||
"dev": true
|
||||
"integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA=="
|
||||
},
|
||||
"tinycolor2": {
|
||||
"version": "1.4.2",
|
||||
|
@ -26408,6 +26495,11 @@
|
|||
"integrity": "sha1-uBNbn7E3K94C/dU60dDM1t55j+4=",
|
||||
"dev": true
|
||||
},
|
||||
"value-equal": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz",
|
||||
"integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw=="
|
||||
},
|
||||
"vary": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
|
||||
|
|
|
@ -49,6 +49,7 @@
|
|||
"express-http-proxy": "1.1.0",
|
||||
"lodash.defaults": "4.0.1",
|
||||
"react-helmet": "5.2.0",
|
||||
"react-router-dom": "^5.2.0",
|
||||
"scratch-parser": "^5.0.0",
|
||||
"scratch-storage": "^0.5.1"
|
||||
},
|
||||
|
@ -118,7 +119,7 @@
|
|||
"redux-mock-store": "^1.2.3",
|
||||
"redux-thunk": "2.0.1",
|
||||
"sass-loader": "6.0.6",
|
||||
"scratch-gui": "0.1.0-prerelease.20210302213127",
|
||||
"scratch-gui": "0.1.0-prerelease.20210317035743",
|
||||
"scratch-l10n": "latest",
|
||||
"selenium-webdriver": "3.6.0",
|
||||
"slick-carousel": "1.6.0",
|
||||
|
|
|
@ -4,5 +4,12 @@
|
|||
"pattern": "^/components/?$",
|
||||
"view": "components/components",
|
||||
"title": "Components"
|
||||
},
|
||||
{
|
||||
"name": "studio",
|
||||
"pattern": "^/studios-playground/\\d+(/projects|/curators|/activity|/comments)?/?(\\?.*)?$",
|
||||
"routeAlias": "/studios-playground/?$",
|
||||
"view": "studio/studio",
|
||||
"title": "Studio Playground"
|
||||
}
|
||||
]
|
||||
]
|
||||
|
|
|
@ -3,7 +3,6 @@ const FormattedMessage = require('react-intl').FormattedMessage;
|
|||
const React = require('react');
|
||||
const render = require('../../../../lib/render.jsx');
|
||||
|
||||
const FlexRow = require('../../../../components/flex-row/flex-row.jsx');
|
||||
const Page = require('../../../../components/page/conference/2020/page.jsx');
|
||||
const TitleBanner = require('../../../../components/title-banner/title-banner.jsx');
|
||||
|
||||
|
@ -32,9 +31,6 @@ const ConferenceSplash = () => (
|
|||
<strong><FormattedMessage id="conference-2020.desc1a" /></strong>
|
||||
<br />
|
||||
<br />
|
||||
<FormattedMessage id="conference-2020.desc2" />
|
||||
<br />
|
||||
<br />
|
||||
<FormattedMessage id="conference-2020.desc3" />
|
||||
</p>
|
||||
<table className="conf2020-panel-details">
|
||||
|
@ -62,7 +58,6 @@ const ConferenceSplash = () => (
|
|||
value={new Date(2021, 6, 24)}
|
||||
year="numeric"
|
||||
/>
|
||||
<FormattedMessage id="conference-2020.dateDescMore" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr className="conf2020-panel-row">
|
||||
|
@ -78,43 +73,16 @@ const ConferenceSplash = () => (
|
|||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
<section className="conf2020-panel mod-registration">
|
||||
<FlexRow className="conf2020-panel-title">
|
||||
<div className="conf2020-panel-title-text">
|
||||
<h3><FormattedMessage id="conference-2020.registrationTitle" /></h3>
|
||||
</div>
|
||||
</FlexRow>
|
||||
<p className="conf2020-panel-desc">
|
||||
<FormattedMessage id="conference-2020.registrationFee" />
|
||||
<br />
|
||||
<FormattedMessage id="conference-2020.registrationOpen" />
|
||||
<br />
|
||||
<br />
|
||||
<FormattedMessage id="conference-2020.registrationDelayed" />
|
||||
<br />
|
||||
<br />
|
||||
<FormattedMessage
|
||||
id="conference-2020.connectNow"
|
||||
values={{
|
||||
scratchInPracticeLink: <a href="https://sip.scratch.mit.edu/">
|
||||
<FormattedMessage id="conference-2020.scratchInPracticeText" />
|
||||
</a>
|
||||
}}
|
||||
/>
|
||||
</p>
|
||||
<a
|
||||
className="button mod-2020-panel"
|
||||
href="http://scratch2020.eventbrite.com/"
|
||||
>
|
||||
<FormattedMessage id="conference-2020.register" />
|
||||
</a>
|
||||
|
||||
</section>
|
||||
<section className="conf2020-panel mod-stay">
|
||||
<p className="conf2020-panel-desc">
|
||||
<FormattedMessage id="conference-2020.stayDesc1" />
|
||||
<br />
|
||||
<br />
|
||||
<FormattedMessage
|
||||
id="conference-2020.stayDesc2"
|
||||
values={{
|
||||
|
|
|
@ -1,27 +1,18 @@
|
|||
{
|
||||
"conference-2020.title": "Scratch Conference 2021:",
|
||||
"conference-2020.subtitle": "Let's Create Together!",
|
||||
"conference-2020.dateDesc": "July 22-24, 2021 | Cambridge, MA, USA",
|
||||
"conference-2020.dateDescMore": " (with opening reception the evening of July 21)",
|
||||
"conference-2020.locationDetails": "MIT Media Lab, Cambridge, MA",
|
||||
"conference-2020.title": "Scratch Around the World:",
|
||||
"conference-2020.subtitle": "An Online Conference",
|
||||
"conference-2020.dateDesc": "July 22",
|
||||
"conference-2020.locationDetails": "Online",
|
||||
|
||||
"conference-2020.date": "When:",
|
||||
"conference-2020.location": "Where:",
|
||||
|
||||
"conference-2020.desc1": "Join us for the Scratch Conference, an international gathering where educators, researchers, and developers share ideas for supporting creative learning with Scratch.",
|
||||
"conference-2020.desc1a": "Due to the global health crisis, we have delayed the conference for one year, to July 22-24, 2021.",
|
||||
"conference-2020.desc2": "Scratch has become the world's largest coding community for children around the world. The conference offers hands-on workshops, panel discussions, and interactive demonstrations to explore ways for using Scratch to expand creative learning experiences for diverse learners across subject areas.",
|
||||
"conference-2020.desc3": "Together we'll exchange ideas and strategies on how to use Scratch to engage students in learning to think creatively, reason systematically, and work collaboratively—essential skills for everyone in today’s society.",
|
||||
"conference-2020.desc1": "Join us for Scratch Around the World, an online conference for educators interested in creative learning with Scratch.",
|
||||
"conference-2020.desc1a": "Although we are not able to meet in person this year, we are excited to find ways to connect and share with others in the global Scratch educator community.",
|
||||
"conference-2020.desc3": "The conference will be free of charge.",
|
||||
|
||||
"conference-2020.registrationTitle": "Registration:",
|
||||
"conference-2020.registrationFee": "Conference Fee: $250",
|
||||
"conference-2020.registrationOpen": "The conference fee includes 7 meals (3 breakfast, 3 lunches, 1 dinner) plus refreshments during the day.",
|
||||
"conference-2020.registrationDelayed": "In response to the coronavirus crisis (COVID-19), we have decided to delay the Scratch conference for one year, to July 22-24, 2021. We are sending well wishes to our entire global community and hope you can join us then!",
|
||||
"conference-2020.connectNow": "Want to connect now? We invite you to learn more about our online conversations, resources, and events at {scratchInPracticeLink}.",
|
||||
"conference-2020.scratchInPracticeText": "Scratch in Practice",
|
||||
"conference-2020.register": "Go to registration page",
|
||||
|
||||
"conference-2020.stayDesc1": "We will be posting revised lodging options at the beginning of 2021.",
|
||||
"conference-2020.stayDesc2": "For additional questions, contact the Scratch Conference Team at {emailLink}",
|
||||
"conference-2020.organizedBy": "The Scratch Conference is organized by the Lifelong Kindergarten group at the MIT Media Lab in collaboration with the Scratch Foundation."
|
||||
}
|
||||
|
|
15
src/views/studio/studio-activity.jsx
Normal file
15
src/views/studio/studio-activity.jsx
Normal file
|
@ -0,0 +1,15 @@
|
|||
import React from 'react';
|
||||
import {useParams} from 'react-router-dom';
|
||||
|
||||
const StudioActivity = () => {
|
||||
const {studioId} = useParams();
|
||||
|
||||
return (
|
||||
<div>
|
||||
<h2>Activity</h2>
|
||||
<p>Studio {studioId}</p>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default StudioActivity;
|
15
src/views/studio/studio-comments.jsx
Normal file
15
src/views/studio/studio-comments.jsx
Normal file
|
@ -0,0 +1,15 @@
|
|||
import React from 'react';
|
||||
import {useParams} from 'react-router-dom';
|
||||
|
||||
const StudioComments = () => {
|
||||
const {studioId} = useParams();
|
||||
|
||||
return (
|
||||
<div>
|
||||
<h2>Comments</h2>
|
||||
<p>Studio {studioId}</p>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default StudioComments;
|
16
src/views/studio/studio-curators.jsx
Normal file
16
src/views/studio/studio-curators.jsx
Normal file
|
@ -0,0 +1,16 @@
|
|||
import React from 'react';
|
||||
import {useParams} from 'react-router-dom';
|
||||
|
||||
const StudioCurators = () => {
|
||||
const {studioId} = useParams();
|
||||
|
||||
return (
|
||||
<div>
|
||||
<h2>Curators</h2>
|
||||
<p>Studio {studioId}</p>
|
||||
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default StudioCurators;
|
15
src/views/studio/studio-info.jsx
Normal file
15
src/views/studio/studio-info.jsx
Normal file
|
@ -0,0 +1,15 @@
|
|||
import React from 'react';
|
||||
import {useParams} from 'react-router-dom';
|
||||
|
||||
const StudioInfo = () => {
|
||||
const {studioId} = useParams();
|
||||
|
||||
return (
|
||||
<div>
|
||||
<h2>Studio Info</h2>
|
||||
<p>Studio {studioId}</p>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default StudioInfo;
|
15
src/views/studio/studio-projects.jsx
Normal file
15
src/views/studio/studio-projects.jsx
Normal file
|
@ -0,0 +1,15 @@
|
|||
import React from 'react';
|
||||
import {useParams} from 'react-router-dom';
|
||||
|
||||
const StudioProjects = () => {
|
||||
const {studioId} = useParams();
|
||||
|
||||
return (
|
||||
<div>
|
||||
<h2>Projects</h2>
|
||||
<p>Studio {studioId}</p>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default StudioProjects;
|
41
src/views/studio/studio-tab-nav.jsx
Normal file
41
src/views/studio/studio-tab-nav.jsx
Normal file
|
@ -0,0 +1,41 @@
|
|||
import React from 'react';
|
||||
import {useRouteMatch, NavLink} from 'react-router-dom';
|
||||
|
||||
const StudioTabNav = () => {
|
||||
const match = useRouteMatch();
|
||||
|
||||
return (
|
||||
<div>
|
||||
<NavLink
|
||||
activeStyle={{textDecoration: 'underline'}}
|
||||
to={`${match.url}`}
|
||||
exact
|
||||
>
|
||||
Projects
|
||||
</NavLink>
|
||||
|
|
||||
<NavLink
|
||||
activeStyle={{textDecoration: 'underline'}}
|
||||
to={`${match.url}/curators`}
|
||||
>
|
||||
Curators
|
||||
</NavLink>
|
||||
|
|
||||
<NavLink
|
||||
activeStyle={{textDecoration: 'underline'}}
|
||||
to={`${match.url}/comments`}
|
||||
>
|
||||
Comments
|
||||
</NavLink>
|
||||
|
|
||||
<NavLink
|
||||
activeStyle={{textDecoration: 'underline'}}
|
||||
to={`${match.url}/activity`}
|
||||
>
|
||||
Activity
|
||||
</NavLink>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default StudioTabNav;
|
63
src/views/studio/studio.jsx
Normal file
63
src/views/studio/studio.jsx
Normal file
|
@ -0,0 +1,63 @@
|
|||
import React from 'react';
|
||||
import {
|
||||
BrowserRouter as Router,
|
||||
Switch,
|
||||
Route,
|
||||
Redirect,
|
||||
useRouteMatch
|
||||
} from 'react-router-dom';
|
||||
|
||||
import Page from '../../components/page/www/page.jsx';
|
||||
import render from '../../lib/render.jsx';
|
||||
import StudioTabNav from './studio-tab-nav.jsx';
|
||||
import StudioProjects from './studio-projects.jsx';
|
||||
import StudioInfo from './studio-info.jsx';
|
||||
import StudioCurators from './studio-curators.jsx';
|
||||
import StudioComments from './studio-comments.jsx';
|
||||
import StudioActivity from './studio-activity.jsx';
|
||||
|
||||
const StudioShell = () => {
|
||||
const match = useRouteMatch();
|
||||
|
||||
return (
|
||||
<div style={{maxWidth: '960px', margin: 'auto'}}>
|
||||
<StudioInfo />
|
||||
<hr />
|
||||
<StudioTabNav />
|
||||
<div>
|
||||
<Switch>
|
||||
<Route path={`${match.path}/curators`}>
|
||||
<StudioCurators />
|
||||
</Route>
|
||||
<Route path={`${match.path}/comments`}>
|
||||
<StudioComments />
|
||||
</Route>
|
||||
<Route path={`${match.path}/activity`}>
|
||||
<StudioActivity />
|
||||
</Route>
|
||||
<Route path={`${match.path}/projects`}>
|
||||
{/* We can force /projects back to / this way */}
|
||||
<Redirect to={match.url} />
|
||||
</Route>
|
||||
<Route path={match.path}>
|
||||
<StudioProjects />
|
||||
</Route>
|
||||
</Switch>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
render(
|
||||
<Page>
|
||||
<Router>
|
||||
<Switch>
|
||||
{/* Use variable studioPath to support /studio-playground/ or future route */}
|
||||
<Route path="/:studioPath/:studioId">
|
||||
<StudioShell />
|
||||
</Route>
|
||||
</Switch>
|
||||
</Router>
|
||||
</Page>,
|
||||
document.getElementById('app')
|
||||
);
|
Loading…
Reference in a new issue