Merge pull request #6115 from LLK/release/2021-09-29

[Master] release/2021-09-29
This commit is contained in:
Eric Rosenbaum 2021-09-30 11:06:29 -04:00 committed by GitHub
commit d400b7176f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 332 additions and 424 deletions

View file

@ -29,7 +29,7 @@ jobs:
git config --global user.email "${{ github.actor }}@users.noreply.github.com"
git config --global user.name "${{ github.actor }}"
git checkout -b ${{ steps.vars.outputs.branch }}
git merge origin/develop
git merge --no-ff origin/develop
git push --set-upstream origin ${{ steps.vars.outputs.branch }}
- name: Develop PR
uses: repo-sync/pull-request@v2

219
package-lock.json generated
View file

@ -15390,9 +15390,9 @@
"integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg=="
},
"nanocolors": {
"version": "0.1.6",
"resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.1.6.tgz",
"integrity": "sha512-2pvTw6vYRaBLGir2xR7MxaJtyWkrn+C53EpW8yPotG+pdAwBvt0Xwk4VJ6VHLY0aLthVZPvDfm9TdZvrvAm5UQ==",
"version": "0.2.12",
"resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.12.tgz",
"integrity": "sha512-SFNdALvzW+rVlzqexid6epYdt8H9Zol7xDoQarioEFcFN0JHo4CYNztAxmtfgGTVRCmFlEOqqhBpoFGKqSAMug==",
"dev": true
},
"nanomatch": {
@ -17298,52 +17298,14 @@
"resolve": "^1.1.7"
},
"dependencies": {
"ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"requires": {
"color-convert": "^1.9.0"
}
},
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
},
"dependencies": {
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
"requires": {
"has-flag": "^3.0.0"
}
}
}
},
"has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"dev": true
},
"postcss": {
"version": "7.0.36",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz",
"integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==",
"version": "7.0.38",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.38.tgz",
"integrity": "sha512-wNrSHWjHDQJR/IZL5IKGxRtFgrYNaAA/UrkW2WqbtZO6uxSLMxMN+s2iqUMwnAWm3fMROlDYZB41dr0Mt7vBwQ==",
"dev": true,
"requires": {
"chalk": "^2.4.2",
"source-map": "^0.6.1",
"supports-color": "^6.1.0"
"nanocolors": "^0.2.2",
"source-map": "^0.6.1"
}
},
"source-map": {
@ -17351,15 +17313,6 @@
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
},
"supports-color": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
"integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
"dev": true,
"requires": {
"has-flag": "^3.0.0"
}
}
}
},
@ -17958,52 +17911,14 @@
"postcss": "^7.0.14"
},
"dependencies": {
"ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"requires": {
"color-convert": "^1.9.0"
}
},
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
},
"dependencies": {
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
"requires": {
"has-flag": "^3.0.0"
}
}
}
},
"has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"dev": true
},
"postcss": {
"version": "7.0.36",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz",
"integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==",
"version": "7.0.38",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.38.tgz",
"integrity": "sha512-wNrSHWjHDQJR/IZL5IKGxRtFgrYNaAA/UrkW2WqbtZO6uxSLMxMN+s2iqUMwnAWm3fMROlDYZB41dr0Mt7vBwQ==",
"dev": true,
"requires": {
"chalk": "^2.4.2",
"source-map": "^0.6.1",
"supports-color": "^6.1.0"
"nanocolors": "^0.2.2",
"source-map": "^0.6.1"
}
},
"source-map": {
@ -18011,15 +17926,6 @@
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
},
"supports-color": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
"integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
"dev": true,
"requires": {
"has-flag": "^3.0.0"
}
}
}
},
@ -19043,9 +18949,9 @@
},
"dependencies": {
"glob": {
"version": "7.1.7",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
"integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
"integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
"dev": true,
"requires": {
"fs.realpath": "^1.0.0",
@ -21006,9 +20912,9 @@
}
},
"scratch-gui": {
"version": "0.1.0-prerelease.20210922095847",
"resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-0.1.0-prerelease.20210922095847.tgz",
"integrity": "sha512-UZNnspxDnavTbHh1QS9fMRV5i8/d4U62kqsBMuT3f0ruCSimVz6Ts8Sx6Gs9IX43Rw+H95SF1P3X+y9Mfm5VQw==",
"version": "0.1.0-prerelease.20210929111256",
"resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-0.1.0-prerelease.20210929111256.tgz",
"integrity": "sha512-H7EdWDHI/7e2cviqghJtH9x86D4F5LOm0OpdAjMsQdY2ZBuTy3qQHH6jTZVzdV30gMpXXiAqayv8VPDpRb9/vw==",
"dev": true,
"requires": {
"arraybuffer-loader": "^1.0.6",
@ -21060,13 +20966,13 @@
"redux-throttle": "0.1.1",
"scratch-audio": "0.1.0-prerelease.20200528195344",
"scratch-blocks": "0.1.0-prerelease.20210829081240",
"scratch-l10n": "3.14.20210922031532",
"scratch-paint": "0.2.0-prerelease.20210922080237",
"scratch-l10n": "3.14.20210929031524",
"scratch-paint": "0.2.0-prerelease.20210929050415",
"scratch-render": "0.1.0-prerelease.20210819221425",
"scratch-render-fonts": "1.0.0-prerelease.20210401210003",
"scratch-storage": "1.3.5",
"scratch-svg-renderer": "0.2.0-prerelease.20210727023023",
"scratch-vm": "0.2.0-prerelease.20210921080609",
"scratch-vm": "0.2.0-prerelease.20210929071152",
"startaudiocontext": "1.2.1",
"style-loader": "^0.23.0",
"text-encoding": "0.7.0",
@ -21085,14 +20991,14 @@
}
},
"autoprefixer": {
"version": "9.8.6",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz",
"integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==",
"version": "9.8.7",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.7.tgz",
"integrity": "sha512-7Hg99B1eTH5+LgmUBUSmov1Z3bsggQJS7v3IMGo6wcScnbRuvtMc871J9J+4bSbIqa9LSX/zypFXJ8sXHpMJeQ==",
"dev": true,
"requires": {
"browserslist": "^4.12.0",
"caniuse-lite": "^1.0.30001109",
"colorette": "^1.2.1",
"nanocolors": "^0.2.8",
"normalize-range": "^0.1.2",
"num2fraction": "^1.2.2",
"postcss": "^7.0.32",
@ -21119,9 +21025,15 @@
},
"dependencies": {
"caniuse-lite": {
"version": "1.0.30001259",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001259.tgz",
"integrity": "sha512-V7mQTFhjITxuk9zBpI6nYsiTXhcPe05l+364nZjK7MFK/E7ibvYBSAXr4YcA6oPR8j3ZLM/LN+lUqUVAQEUZFg==",
"version": "1.0.30001261",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001261.tgz",
"integrity": "sha512-vM8D9Uvp7bHIN0fZ2KQ4wnmYFpJo/Etb4Vwsuc+ka0tfGDHvOPrFm6S/7CCNLSOkAUjenT2HnUPESdOIL91FaA==",
"dev": true
},
"nanocolors": {
"version": "0.1.12",
"resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.1.12.tgz",
"integrity": "sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ==",
"dev": true
}
}
@ -21135,17 +21047,6 @@
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
},
"dependencies": {
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
"requires": {
"has-flag": "^3.0.0"
}
}
}
},
"classnames": {
@ -21208,15 +21109,6 @@
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
"integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
"dev": true
},
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
"requires": {
"has-flag": "^3.0.0"
}
}
}
},
@ -21237,9 +21129,9 @@
"dev": true
},
"electron-to-chromium": {
"version": "1.3.846",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.846.tgz",
"integrity": "sha512-2jtSwgyiRzybHRxrc2nKI+39wH3AwQgn+sogQ+q814gv8hIFwrcZbV07Ea9f8AmK0ufPVZUvvAG1uZJ+obV4Jw==",
"version": "1.3.853",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.853.tgz",
"integrity": "sha512-W4U8n+U8I5/SUaFcqZgbKRmYZwcyEIQVBDf+j5QQK6xChjXnQD+wj248eGR9X4u+dDmDR//8vIfbu4PrdBBIoQ==",
"dev": true
},
"has-flag": {
@ -21327,14 +21219,13 @@
}
},
"postcss": {
"version": "7.0.36",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz",
"integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==",
"version": "7.0.38",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.38.tgz",
"integrity": "sha512-wNrSHWjHDQJR/IZL5IKGxRtFgrYNaAA/UrkW2WqbtZO6uxSLMxMN+s2iqUMwnAWm3fMROlDYZB41dr0Mt7vBwQ==",
"dev": true,
"requires": {
"chalk": "^2.4.2",
"source-map": "^0.6.1",
"supports-color": "^6.1.0"
"nanocolors": "^0.2.2",
"source-map": "^0.6.1"
}
},
"postcss-load-config": {
@ -21480,9 +21371,9 @@
}
},
"supports-color": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
"integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
"requires": {
"has-flag": "^3.0.0"
@ -21509,9 +21400,9 @@
}
},
"scratch-l10n": {
"version": "3.14.20210922031532",
"resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.14.20210922031532.tgz",
"integrity": "sha512-LxwHhsxkZR5veFpDMC8wAItGMKVj8+Q33B5RiqWhH/zzx5Qq7/ON9AyGOZ0NF736U70TqjWvV1ZX4lP+GsEjBg==",
"version": "3.14.20210929031524",
"resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.14.20210929031524.tgz",
"integrity": "sha512-Zi9cyLGhCbJ/Hfv/xSbtx/c4Vjh8r3eX555EIub/rkCiLQZz5Y8Fe6m70dSn/f9dqmUCdGMBsNEY/3jZTKdsIw==",
"dev": true,
"requires": {
"@babel/cli": "^7.1.2",
@ -21521,9 +21412,9 @@
}
},
"scratch-paint": {
"version": "0.2.0-prerelease.20210922080237",
"resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-0.2.0-prerelease.20210922080237.tgz",
"integrity": "sha512-76gEmHAmEejJZEcVR+S5+hZ9lKIEj4GCSXs2Y8oucY1lOl9ijAFsVeEMT3SyeJW18ZOesLa/VKc8qCtxzWe4sg==",
"version": "0.2.0-prerelease.20210929050415",
"resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-0.2.0-prerelease.20210929050415.tgz",
"integrity": "sha512-5XBai5as+rKpwynVa6OhBh4Z1FcV7dKznTDS+VIPpxvCKHx99otQXNz8aLbHgaFjr7cf1Cu+f64sYS6wM25n0A==",
"dev": true,
"requires": {
"@scratch/paper": "0.11.20200728195508",
@ -21740,9 +21631,9 @@
"dev": true
},
"scratch-vm": {
"version": "0.2.0-prerelease.20210921080609",
"resolved": "https://registry.npmjs.org/scratch-vm/-/scratch-vm-0.2.0-prerelease.20210921080609.tgz",
"integrity": "sha512-6YX6wviWNR3OMJccgW+EI1gFeITYerpcQoJ2EqgN93yCdskq5nCAgLylxh75MMMomBXJNUpUy/YldF+NEHztCw==",
"version": "0.2.0-prerelease.20210929071152",
"resolved": "https://registry.npmjs.org/scratch-vm/-/scratch-vm-0.2.0-prerelease.20210929071152.tgz",
"integrity": "sha512-85oVoy5NTecYxSi3phD5RDYr9zzKXm6DHjyO+xB1iTOQQyU/C7bNygMgVr7ou8izbTuR+Jygv/y2UBoTbq6HVA==",
"dev": true,
"requires": {
"@vernier/godirect": "1.5.0",

View file

@ -130,8 +130,8 @@
"redux-mock-store": "1.5.4",
"redux-thunk": "2.0.1",
"sass-loader": "6.0.6",
"scratch-gui": "0.1.0-prerelease.20210922095847",
"scratch-l10n": "3.14.20210922031532",
"scratch-gui": "0.1.0-prerelease.20210929111256",
"scratch-l10n": "3.14.20210929031524",
"selenium-webdriver": "3.6.0",
"slick-carousel": "1.6.0",
"style-loader": "0.12.3",

View file

@ -147,10 +147,6 @@ module.exports.selectStudioCommentsGloballyEnabled = state =>
module.exports.selectMuteStatus = state => get(state, ['session', 'session', 'permissions', 'mute_status'],
{muteExpiresAt: 0, offenses: [], showWarning: false});
module.exports.selectIsMuted = state => (module.exports.selectMuteStatus(state).muteExpiresAt || 0) * 1000 > Date.now();
module.exports.selectNewStudiosLaunched = state => get(state, ['session', 'session', 'flags', 'new_studios_launched'],
false);
module.exports.selectStudioTransferLaunched = state => get(state, ['session', 'session', 'flags',
'studio_transfer_launched'], false);
module.exports.selectHasFetchedSession = state => state.session.status === module.exports.Status.FETCHED;

View file

@ -52,7 +52,7 @@ const selectCanRemoveCurator = (state, username) => {
};
const selectCanRemoveManager = (state, managerId) =>
!selectIsMuted(state) && (selectIsAdmin(state) || isManager(state)) && managerId !== state.studio.host;
const selectCanPromoteCurators = state => !selectIsMuted(state) && isManager(state);
const selectCanPromoteCurators = state => !selectIsMuted(state) && (isManager(state) || selectIsAdmin(state));
const selectCanTransfer = (state, managerId) => {
// Nobody can transfer a class studio.

View file

@ -118,13 +118,14 @@ const Credits = () => (
Juanita Buitrago, Leo Burd, Gaia Carini, Kasia Chmielinski,
Michelle Chung, Shane Clements, Hannah Cole, Sayamindu Dasgupta,
Margarita Dekoli, Manuj Dhariwal, Shruti Dhariwal, Dave Feinberg,
Linda Fernsel, Elizabeth Foster, Lily Gabaree, Stephanie Gayle,
Chris Graves, Joel Gritter, Megan Haddadi, Kreg Hanning,
Sean Hickey, Christina Huang, Cori Hudson, Tony Hwang,
Abdulrahman Idlbi, Rupal Jain, Randy Jou, Lily Kim, Tauntaun Kim,
Saskia Leggett, John Maloney, Tim Mickel, Amon Millner,
Andrés Monroy-Hernández, Marian Muthui, My Nguyen, Lisa O'Brien,
Abisola Okuk, Carmelo Presicce, Tina Quach, Mitchel Resnick,
Champika Fernando, Linda Fernsel, Elizabeth Foster, Joan Fusco,
Lily Gabaree, Stephanie Gayle, Chris Graves, Joel Gritter,
Megan Haddadi, Kreg Hanning, Sean Hickey, Christina Huang,
Cori Hudson, Tony Hwang, Abdulrahman Idlbi, Rupal Jain, Randy Jou,
Paul Kaplan, Lily Kim, Tauntaun Kim, Saskia Leggett, DD Liu,
John Maloney, Tim Mickel, Amon Millner, Andrés Monroy-Hernández,
Marian Muthui, My Nguyen, Lisa O'Brien, Abisola Okuk,
Kristin Osiecki, Carmelo Presicce, Tina Quach, Mitchel Resnick,
Ricarose Roque, Natalie Rusk, Andrea Saxman, Jay Silver,
Brian Silverman, Andrew Sliwinski, Tammy Stern, Lis Sylvan,
Hanako Tjia, Jaleesa Trapp, Moran Tsur, Claudia Urrea,

View file

@ -4,6 +4,16 @@
"userId": 61436283,
"name": "Achal"
},
{
"userName": "themorningsun",
"userId": 79849553,
"name": "Addae"
},
{
"userName": "LeopardFlash",
"userId": 71683519,
"name": "Aishat"
},
{
"userName": "originalwow",
"userId": 56182496,
@ -24,6 +34,11 @@
"userId": 10001044,
"name": "Ben"
},
{
"userName": "beezy333",
"userId": 79626299,
"name": "Breanna"
},
{
"userName": "BrycedTea",
"userId": 2029640,
@ -34,11 +49,6 @@
"userId": 3581881,
"name": "Carl"
},
{
"userName": "Champ99",
"userId": 900283,
"name": "Champika"
},
{
"userName": "chrisg",
"userId": 1494,
@ -64,15 +74,20 @@
"userId": 10866958,
"name": "Colby"
},
{
"userName": "spectre_specs",
"userId": 79615865,
"name": "Courtney"
},
{
"userName": "noncanonical",
"userId": 55851826,
"name": "Craig"
},
{
"userName": "dsquare",
"userId": 527836,
"name": "DD"
"userName": "Harakou",
"userId": 373646,
"name": "Dalton"
},
{
"userName": "SunnyDay4aBlueJay",
@ -99,16 +114,16 @@
"userId": 61374093,
"name": "Iuliia"
},
{
"userName": "bluecrazie",
"userId": 50257624,
"name": "JT"
},
{
"userName": "pixelmoth",
"userId": 2408962,
"name": "Jacy"
},
{
"userName": "Mos20",
"userId": 52545208,
"name": "Joan"
},
{
"userName": "FredDog",
"userId": 2496866,
@ -119,11 +134,6 @@
"userId": 2871308,
"name": "Joshua"
},
{
"userName": "bluecrazie",
"userId": 50257624,
"name": "JT"
},
{
"userName": "MunchtheCat",
"userId": 59383434,
@ -144,16 +154,21 @@
"userId": 26779669,
"name": "Kathy"
},
{
"userName": "KayOh",
"userId": 3018280,
"name": "Kristin"
},
{
"userName": "Lamatchalattei",
"userId": 61415372,
"name": "Lamar"
},
{
"userName": "JumpingRabbits",
"userId": 3948118,
"name": "Linda"
},
{
"userName": "itzlinz",
"userId": 80082947,
"name": "Lindsay"
},
{
"userName": "algorithmar",
"userId": 43013126,
@ -170,9 +185,14 @@
"name": "Mark"
},
{
"userName": "sgcc_",
"userId": 21986973,
"name": "Paul"
"userName": "deism902",
"userId": 78735197,
"name": "Melodie"
},
{
"userName": "pamimus",
"userId": 74474548,
"name": "Mimi"
},
{
"userName": "raimondious",
@ -194,6 +214,11 @@
"userId": 58005604,
"name": "Rupa"
},
{
"userName": "Rhyolyte",
"userId": 80776012,
"name": "Ryan"
},
{
"userName": "scmb1",
"userId": 246290,
@ -227,6 +252,6 @@
{
"userName": "Zinnea",
"userId": 35911243,
"name": "Zo\u00eb"
"name": "Zoë"
}
]

View file

@ -12,7 +12,7 @@ const {connect} = require('react-redux');
const {useState} = require('react');
const projectShape = require('./projectshape.jsx').projectShape;
import {selectIsMuted, selectNewStudiosLaunched} from '../../redux/session.js';
import {selectIsMuted} from '../../redux/session.js';
import StudioMuteEditMessage from '../studio/studio-mute-edit-message.jsx';
require('./subactions.scss');
@ -159,6 +159,6 @@ Subactions.propTypes = {
module.exports = connect(
state => ({
showAddToStudioMuteError: selectNewStudiosLaunched(state) && selectIsMuted(state)
showAddToStudioMuteError: selectIsMuted(state)
})
)(Subactions);

View file

@ -13,7 +13,6 @@ import {
selectCanRemoveCurator, selectCanRemoveManager, selectCanPromoteCurators,
selectCanTransfer
} from '../../redux/studio-permissions';
import {selectStudioTransferLaunched} from '../../redux/session.js';
import {
Errors,
promoteCurator,
@ -29,7 +28,7 @@ import removeIcon from './icons/remove-icon.svg';
import promoteIcon from './icons/curator-icon.svg';
const StudioMemberTile = ({
canRemove, canPromote, onRemove, canTransferHost, onPromote, studioTransferLaunched,
canRemove, canPromote, onRemove, canTransferHost, onPromote,
isCreator, hasReachedManagerLimit, // mapState props
username, image // own props
}) => {
@ -54,10 +53,9 @@ const StudioMemberTile = ({
>{username}</a>
{isCreator &&
<div className="studio-member-role">
{studioTransferLaunched ?
<FormattedMessage id="studio.hostRole" /> :
<FormattedMessage id="studio.creatorRole" />}
</div>}
<FormattedMessage id="studio.hostRole" />
</div>
}
</div>
{(canRemove || canPromote || canTransferHost) &&
<OverflowMenu>
@ -154,18 +152,15 @@ StudioMemberTile.propTypes = {
username: PropTypes.string,
image: PropTypes.string,
isCreator: PropTypes.bool,
hasReachedManagerLimit: PropTypes.bool,
studioTransferLaunched: PropTypes.bool
hasReachedManagerLimit: PropTypes.bool
};
const ManagerTile = connect(
(state, ownProps) => ({
canRemove: selectCanRemoveManager(state, ownProps.id),
canPromote: false,
canTransferHost: selectCanTransfer(state, ownProps.id) &&
selectStudioTransferLaunched(state),
isCreator: state.studio.host === ownProps.id,
studioTransferLaunched: selectStudioTransferLaunched(state)
canTransferHost: selectCanTransfer(state, ownProps.id),
isCreator: state.studio.host === ownProps.id
}),
{
onRemove: removeManager

View file

@ -344,7 +344,7 @@ describe('studio members', () => {
describe('can promote curators', () => {
test.each([
['admin', false],
['admin', true],
['curator', false],
['manager', true],
['creator', true],