diff --git a/res/css/structures/_TabbedView.scss b/res/css/structures/_TabbedView.scss index 6e435b8e75..29e7c401e6 100644 --- a/res/css/structures/_TabbedView.scss +++ b/res/css/structures/_TabbedView.scss @@ -64,7 +64,7 @@ limitations under the License. background-color: $tab-label-icon-bg-color; mask-repeat: no-repeat; mask-size: 16px; - width: 14px; + width: 16px; height: 22px; mask-position: center; content: ''; diff --git a/res/css/views/context_menus/_TopLeftMenu.scss b/res/css/views/context_menus/_TopLeftMenu.scss index b3ef703144..272a882051 100644 --- a/res/css/views/context_menus/_TopLeftMenu.scss +++ b/res/css/views/context_menus/_TopLeftMenu.scss @@ -31,10 +31,6 @@ limitations under the License. mask-image: url('$(res)/img/feather-icons/home.svg'); } - li.mx_TopLeftMenu_icon_welcome::after { - mask-image: url('$(res)/img/feather-icons/gift.svg'); - } - li.mx_TopLeftMenu_icon_settings::after { mask-image: url('$(res)/img/feather-icons/settings.svg'); } diff --git a/res/css/views/elements/_ImageView.scss b/res/css/views/elements/_ImageView.scss index 9bf23b1025..52b6a63699 100644 --- a/res/css/views/elements/_ImageView.scss +++ b/res/css/views/elements/_ImageView.scss @@ -77,7 +77,8 @@ limitations under the License. .mx_ImageView_cancel { position: absolute; - top: 0px; + // hack for mx_Dialog having a top padding of 40px + top: 40px; right: 0px; padding: 35px; cursor: pointer; diff --git a/res/css/views/rooms/_EventTile.scss b/res/css/views/rooms/_EventTile.scss index a8f34565b5..24a23a0f98 100644 --- a/res/css/views/rooms/_EventTile.scss +++ b/res/css/views/rooms/_EventTile.scss @@ -278,6 +278,10 @@ limitations under the License. /* End to end encryption stuff */ +.mx_EventTile_e2eIcon:hover { + opacity: 1; +} + .mx_EventTile_e2eIcon { display: block; position: absolute; @@ -289,6 +293,7 @@ limitations under the License. mask-size: 14px; mask-repeat: no-repeat; mask-position: 0; + opacity: 0.2; } .mx_EventTile_e2eIcon_undecryptable, .mx_EventTile_e2eIcon_unverified { diff --git a/res/img/feather-icons/gift.svg b/res/img/feather-icons/gift.svg deleted file mode 100644 index c225b50f9d..0000000000 --- a/res/img/feather-icons/gift.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/components/structures/LoggedInView.js b/src/components/structures/LoggedInView.js index 2303083d98..2e1b91fe0e 100644 --- a/src/components/structures/LoggedInView.js +++ b/src/components/structures/LoggedInView.js @@ -31,6 +31,7 @@ import sessionStore from '../../stores/SessionStore'; import MatrixClientPeg from '../../MatrixClientPeg'; import SettingsStore from "../../settings/SettingsStore"; import RoomListStore from "../../stores/RoomListStore"; +import { getHomePageUrl } from '../../utils/pages'; import TagOrderActions from '../../actions/TagOrderActions'; import RoomListActions from '../../actions/RoomListActions'; @@ -459,17 +460,7 @@ const LoggedInView = React.createClass({ case PageTypes.HomePage: { - const pagesConfig = this.props.config.embeddedPages; - let pageUrl = null; - if (pagesConfig) { - pageUrl = pagesConfig.homeUrl; - } - if (!pageUrl) { - // This is a deprecated config option for the home page - // (despite the name, given we also now have a welcome - // page, which is not the same). - pageUrl = this.props.config.welcomePageUrl; - } + const pageUrl = getHomePageUrl(this.props.config); pageElement = { + dis.dispatch({action: 'view_next_room'}); + }); } } }, diff --git a/src/components/structures/ScrollPanel.js b/src/components/structures/ScrollPanel.js index 1df5e876e8..a1a7d08e0b 100644 --- a/src/components/structures/ScrollPanel.js +++ b/src/components/structures/ScrollPanel.js @@ -211,6 +211,14 @@ module.exports = React.createClass({ // forget what we wanted, so don't overwrite the saved state unless // this appears to be a user-initiated scroll. if (sn.scrollTop != this._lastSetScroll) { + // when scrolling, we don't care about disappearing typing notifs shrinking the timeline + // this might cause the scrollbar to resize in case the max-height was not correct + // but that's better than ending up with a lot of whitespace at the bottom of the timeline. + // we need to above check because when showing the typing notifs, an onScroll event is also triggered + if (!this.isAtBottom()) { + this.clearBlockShrinking(); + } + this._saveScrollState(); } else { debuglog("Ignoring scroll echo"); diff --git a/src/components/views/context_menus/TopLeftMenu.js b/src/components/views/context_menus/TopLeftMenu.js index 8583f631f2..e3d8ef8d91 100644 --- a/src/components/views/context_menus/TopLeftMenu.js +++ b/src/components/views/context_menus/TopLeftMenu.js @@ -26,7 +26,6 @@ export class TopLeftMenu extends React.Component { constructor() { super(); this.viewHomePage = this.viewHomePage.bind(this); - this.viewWelcomePage = this.viewWelcomePage.bind(this); this.openSettings = this.openSettings.bind(this); this.signIn = this.signIn.bind(this); this.signOut = this.signOut.bind(this); @@ -67,9 +66,6 @@ export class TopLeftMenu extends React.Component { return
{homePageSection} - @@ -82,11 +78,6 @@ export class TopLeftMenu extends React.Component { this.closeMenu(); } - viewWelcomePage() { - dis.dispatch({action: 'view_welcome_page'}); - this.closeMenu(); - } - openSettings() { dis.dispatch({action: 'view_user_settings'}); this.closeMenu(); diff --git a/src/components/views/dialogs/RedesignFeedbackDialog.js b/src/components/views/dialogs/RedesignFeedbackDialog.js index c428aca16a..8f345bdd92 100644 --- a/src/components/views/dialogs/RedesignFeedbackDialog.js +++ b/src/components/views/dialogs/RedesignFeedbackDialog.js @@ -20,14 +20,12 @@ import { _t } from '../../../languageHandler'; export default (props) => { const existingIssuesUrl = "https://github.com/vector-im/riot-web/issues" + - "?q=is%3Aopen+is%3Aissue+label%3Aredesign+sort%3Areactions-%2B1-desc"; - const newIssueUrl = "https://github.com/vector-im/riot-web/issues/new" + - "?assignees=&labels=redesign&template=redesign_issue.md&title="; + "?q=is%3Aopen+is%3Aissue+sort%3Areactions-%2B1-desc"; + const newIssueUrl = "https://github.com/vector-im/riot-web/issues/new"; const description1 = - _t("Thanks for testing the Riot Redesign. " + - "If you run into any bugs or visual issues, " + - "please let us know on GitHub."); + _t("If you run into any bugs or have feedback you'd like to share, " + + "please let us know on GitHub."); const description2 = _t("To help avoid duplicate issues, " + "please view existing issues " + "first (and add a +1) or create a new issue " + diff --git a/src/components/views/elements/LazyRenderList.js b/src/components/views/elements/LazyRenderList.js index 1c1cc127d6..d7d2a0ab99 100644 --- a/src/components/views/elements/LazyRenderList.js +++ b/src/components/views/elements/LazyRenderList.js @@ -73,12 +73,6 @@ export default class LazyRenderList extends React.Component { } } - shouldComponentUpdate(nextProps, nextState) { - const itemsChanged = nextProps.items !== this.props.items; - const rangeChanged = nextState.renderRange !== this.state.renderRange; - return itemsChanged || rangeChanged; - } - render() { const {itemHeight, items, renderItem} = this.props; diff --git a/src/components/views/settings/tabs/HelpSettingsTab.js b/src/components/views/settings/tabs/HelpSettingsTab.js index 524bddf3b1..4ad62451cb 100644 --- a/src/components/views/settings/tabs/HelpSettingsTab.js +++ b/src/components/views/settings/tabs/HelpSettingsTab.js @@ -126,6 +126,26 @@ export default class HelpSettingsTab extends React.Component { ); } + _renderCredits() { + // Note: This is not translated because it is legal text. + // Also,   is ugly but necessary. + return ( +
+ {_t("Credits")} + +
+ ); + } + render() { let faqText = _t('For help with using Riot, click here.', {}, { 'a': (sub) => {sub}, @@ -211,6 +231,7 @@ export default class HelpSettingsTab extends React.Component {
{this._renderLegal()} + {this._renderCredits()}
{_t("Advanced")}
diff --git a/src/i18n/strings/bg.json b/src/i18n/strings/bg.json index e92648a0d2..627f4309c6 100644 --- a/src/i18n/strings/bg.json +++ b/src/i18n/strings/bg.json @@ -686,7 +686,7 @@ "This setting cannot be changed later!": "Тази настройка не може да бъде променена по-късно!", "Unknown error": "Неизвестна грешка", "Incorrect password": "Неправилна парола", - "Deactivate Account": "Деактивация на профила", + "Deactivate Account": "Затвори акаунта", "Deactivate my account": "Деактивирай моя профил", "Device name": "Име на устройство", "Device key": "Ключ на устройство", @@ -1185,7 +1185,7 @@ "Encrypting": "Шифроване", "Encrypted, not sent": "Шифровано, неизпратено", "Share Link to User": "Сподели връзка с потребител", - "Share room": "Сподели стая", + "Share room": "Сподели стаята", "Share Room": "Споделяне на стая", "Link to most recent message": "Създай връзка към най-новото съобщение", "Share User": "Споделяне на потребител", @@ -1515,7 +1515,6 @@ "2018 theme": "Тема 2018", "Account management": "Управление на акаунта", "Deactivating your account is a permanent action - be careful!": "Деактивирането на акаунта е необратимо действие - внимавайте!", - "Deactivate Account": "Затвори акаунта", "For help with using Riot, click here.": "За помощ при използването на Riot, кликнете тук.", "For help with using Riot, click here or start a chat with our bot using the button below.": "За помощ при използването на Riot, кликнете тук или започнете чат с бота ни използвайки бутона по-долу.", "Chat with Riot Bot": "Чати с Riot Bot", @@ -1762,5 +1761,7 @@ "Secure your backup with a passphrase": "Защитете резервното копие с парола", "Confirm your passphrase": "Потвърдете паролата", "Recovery key": "Ключ за възстановяване", - "Success!": "Успешно!" + "Success!": "Успешно!", + "Allow Peer-to-Peer for 1:1 calls": "Позволи използването на директна връзка (P2P) за 1:1 повиквания", + "Default theme": "Тема по подразбиране" } diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index fe41beb7ae..10baa72164 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -528,6 +528,7 @@ "Deactivating your account is a permanent action - be careful!": "Deactivating your account is a permanent action - be careful!", "Deactivate Account": "Deactivate Account", "Legal": "Legal", + "Credits": "Credits", "For help with using Riot, click here.": "For help with using Riot, click here.", "For help with using Riot, click here or start a chat with our bot using the button below.": "For help with using Riot, click here or start a chat with our bot using the button below.", "Chat with Riot Bot": "Chat with Riot Bot", @@ -1106,7 +1107,7 @@ "Manually export keys": "Manually export keys", "You'll lose access to your encrypted messages": "You'll lose access to your encrypted messages", "Are you sure you want to sign out?": "Are you sure you want to sign out?", - "Thanks for testing the Riot Redesign. If you run into any bugs or visual issues, please let us know on GitHub.": "Thanks for testing the Riot Redesign. If you run into any bugs or visual issues, please let us know on GitHub.", + "If you run into any bugs or have feedback you'd like to share, please let us know on GitHub.": "If you run into any bugs or have feedback you'd like to share, please let us know on GitHub.", "To help avoid duplicate issues, please view existing issues first (and add a +1) or create a new issue if you can't find it.": "To help avoid duplicate issues, please view existing issues first (and add a +1) or create a new issue if you can't find it.", "Report bugs & give feedback": "Report bugs & give feedback", "Go back": "Go back", @@ -1221,7 +1222,6 @@ "View Community": "View Community", "Hide": "Hide", "Sign in": "Sign in", - "Welcome": "Welcome", "Login": "Login", "powered by Matrix": "powered by Matrix", "Robot check is currently unavailable on desktop - please use a web browser": "Robot check is currently unavailable on desktop - please use a web browser", diff --git a/src/i18n/strings/fi.json b/src/i18n/strings/fi.json index 3670efc173..071de3b409 100644 --- a/src/i18n/strings/fi.json +++ b/src/i18n/strings/fi.json @@ -1078,5 +1078,6 @@ "%(count)s of your messages have not been sent.|one": "Viestiäsi ei lähetetty.", "%(oldDisplayName)s changed their display name to %(displayName)s.": "%(oldDisplayName)s asetti näyttönimekseen %(displayName)s.", "Learn more about how we use analytics.": "Lue lisää analytiikkakäytännöistämme.", - "There's no one else here! Would you like to invite others or stop warning about the empty room?": "Täällä ei ole muita! Haluaisitko kutsua muita tai lopettaa tyhjästä huoneesta huomauttamisen?" + "There's no one else here! Would you like to invite others or stop warning about the empty room?": "Täällä ei ole muita! Haluaisitko kutsua muita tai lopettaa tyhjästä huoneesta huomauttamisen?", + "The version of Riot.im": "Riot.im:n versio" } diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 1940a7999b..54407ef11a 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -92,7 +92,7 @@ "Current password": "Mot de passe actuel", "Curve25519 identity key": "Clé d’identité Curve25519", "/ddg is not a command": "/ddg n'est pas une commande", - "Deactivate Account": "Désactiver le compte", + "Deactivate Account": "Fermer le compte", "Deactivate my account": "Désactiver mon compte", "Decrypt %(text)s": "Déchiffrer %(text)s", "Decryption error": "Erreur de déchiffrement", @@ -1526,7 +1526,6 @@ "2018 theme": "Thème 2018", "Account management": "Gestion du compte", "Deactivating your account is a permanent action - be careful!": "La désactivation du compte est une action permanente. Soyez prudent !", - "Deactivate Account": "Fermer le compte", "For help with using Riot, click here.": "Pour obtenir de l'aide sur l'utilisation de Riot, cliquez ici.", "For help with using Riot, click here or start a chat with our bot using the button below.": "Pour obtenir de l'aide sur l'utilisation de Riot, cliquez ici ou commencez une discussion avec notre bot en utilisant le bouton ci-dessous.", "Start a chat with Riot Bot": "Commencer une discussion avec le bot Riot", @@ -1773,5 +1772,8 @@ "Secure your backup with a passphrase": "Protégez votre sauvegarde avec une phrase de passe", "Confirm your passphrase": "Confirmez votre phrase de passe", "Recovery key": "Clé de récupération", - "Success!": "Terminé !" + "Success!": "Terminé !", + "Allow Peer-to-Peer for 1:1 calls": "Autoriser les connexions pair-à-pair pour les appels individuels", + "Default theme": "Thème par défaut", + "Welcome": "Bienvenue" } diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json index 56e9aaa4a3..79e9ba95fc 100644 --- a/src/i18n/strings/hu.json +++ b/src/i18n/strings/hu.json @@ -113,7 +113,7 @@ "Custom": "Egyedi", "Custom level": "Egyedi szint", "/ddg is not a command": "/ddg nem egy parancs", - "Deactivate Account": "Fiók zárolása", + "Deactivate Account": "Fiók bezárása", "Deactivate my account": "Fiókom felfüggesztése", "Decline": "Elutasít", "Decrypt %(text)s": "%(text)s visszafejtése", @@ -1525,7 +1525,6 @@ "2018 theme": "2018-as téma", "Account management": "Fiók menedzsment", "Deactivating your account is a permanent action - be careful!": "A fiók felfüggesztése végleges - légy óvatos!", - "Deactivate Account": "Fiók bezárása", "For help with using Riot, click here.": "A Riot használatában való segítséghez kattints ide.", "For help with using Riot, click here or start a chat with our bot using the button below.": "A Riot használatában való segítségér kattints ide vagy kezdj beszélgetni a botunkkal az alábbi gombra kattintva.", "Start a chat with Riot Bot": "Csevegés kezdése a Riot Bottal", @@ -1773,5 +1772,8 @@ "Secure your backup with a passphrase": "Védd a mentést egy jelmondattal", "Confirm your passphrase": "Erősítsd meg a jelmondatot", "Recovery key": "Visszaállítási Kulcs", - "Success!": "Sikeres!" + "Success!": "Sikeres!", + "Allow Peer-to-Peer for 1:1 calls": "Ponttól-pontig kapcsolat engedélyezése az 1:1 hívásokban", + "Default theme": "Alapértelmezett stílus", + "Welcome": "Üdvözöllek" } diff --git a/src/settings/Settings.js b/src/settings/Settings.js index 4108848033..bb3cf9330c 100644 --- a/src/settings/Settings.js +++ b/src/settings/Settings.js @@ -324,12 +324,12 @@ export const SETTINGS = { "pinMentionedRooms": { supportedLevels: LEVELS_ACCOUNT_SETTINGS, displayName: _td("Pin rooms I'm mentioned in to the top of the room list"), - default: false, + default: true, }, "pinUnreadRooms": { supportedLevels: LEVELS_ACCOUNT_SETTINGS, displayName: _td("Pin unread rooms to the top of the room list"), - default: false, + default: true, }, "enableWidgetScreenshots": { supportedLevels: LEVELS_ACCOUNT_SETTINGS, diff --git a/src/utils/pages.js b/src/utils/pages.js new file mode 100644 index 0000000000..d63ca3f2c7 --- /dev/null +++ b/src/utils/pages.js @@ -0,0 +1,31 @@ +/* +Copyright 2019 New Vector Ltd + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +export function getHomePageUrl(appConfig) { + const pagesConfig = appConfig.embeddedPages; + let pageUrl = null; + if (pagesConfig) { + pageUrl = pagesConfig.homeUrl; + } + if (!pageUrl) { + // This is a deprecated config option for the home page + // (despite the name, given we also now have a welcome + // page, which is not the same). + pageUrl = appConfig.welcomePageUrl; + } + + return pageUrl; +}