Skip to content

Commit

Permalink
Improve the styling of search initialization errors.
Browse files Browse the repository at this point in the history
Signed-off-by: Kalle Struik <kalle@kallestruik.nl>
  • Loading branch information
KalleStruik committed May 9, 2022
1 parent c86040b commit 7c07ad1
Show file tree
Hide file tree
Showing 6 changed files with 34 additions and 32 deletions.
2 changes: 1 addition & 1 deletion res/css/_components.scss
Expand Up @@ -143,7 +143,7 @@
@import "./views/elements/_AddressSelector.scss";
@import "./views/elements/_AddressTile.scss";
@import "./views/elements/_CopyableText.scss";
@import "./views/elements/_DesktopBuildsNotice.scss";
@import "./views/elements/_SearchWarning.scss";
@import "./views/elements/_DesktopCapturerSourcePicker.scss";
@import "./views/elements/_DialPadBackspaceButton.scss";
@import "./views/elements/_DirectorySearchBox.scss";
Expand Down
Expand Up @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/

.mx_DesktopBuildsNotice {
.mx_SearchWarning {
text-align: center;
padding: 0 16px;

Expand Down
4 changes: 2 additions & 2 deletions src/components/structures/FilePanel.tsx
Expand Up @@ -27,7 +27,7 @@ import { logger } from "matrix-js-sdk/src/logger";
import { MatrixClientPeg } from '../../MatrixClientPeg';
import EventIndexPeg from "../../indexing/EventIndexPeg";
import { _t } from '../../languageHandler';
import DesktopBuildsNotice, { WarningKind } from "../views/elements/DesktopBuildsNotice";
import SearchWarning, { WarningKind } from "../views/elements/SearchWarning";
import BaseCard from "../views/right_panel/BaseCard";
import ResizeNotifier from '../../utils/ResizeNotifier';
import TimelinePanel from "./TimelinePanel";
Expand Down Expand Up @@ -275,7 +275,7 @@ class FilePanel extends React.Component<IProps, IState> {
sensor={this.card.current}
onMeasurement={this.onMeasurement}
/>
<DesktopBuildsNotice isRoomEncrypted={isRoomEncrypted} kind={WarningKind.Files} />
<SearchWarning isRoomEncrypted={isRoomEncrypted} kind={WarningKind.Files} />
<TimelinePanel
manageReadReceipts={false}
manageReadMarkers={false}
Expand Down
Expand Up @@ -35,28 +35,30 @@ interface IProps {
kind: WarningKind;
}

export default function DesktopBuildsNotice({ isRoomEncrypted, kind }: IProps) {
export default function SearchWarning({ isRoomEncrypted, kind }: IProps) {
if (!isRoomEncrypted) return null;
if (EventIndexPeg.get()) return null;

if (EventIndexPeg.error) {
return <>
{ _t("Message search initialisation failed, check <a>your settings</a> for more information", {}, {
a: sub => (
<AccessibleButton
kind="link_inline"
onClick={(evt) => {
evt.preventDefault();
dis.dispatch({
action: Action.ViewUserSettings,
initialTabId: UserTab.Security,
});
}}
>
{ sub }
</AccessibleButton>),
}) }
</>;
return (
<div className="mx_SearchWarning">
{ _t("Message search initialisation failed, check <a>your settings</a> for more information", {}, {
a: sub => (
<AccessibleButton
kind="link_inline"
onClick={(evt) => {
evt.preventDefault();
dis.dispatch({
action: Action.ViewUserSettings,
initialTabId: UserTab.Security,
});
}}
>
{ sub }
</AccessibleButton>),
}) }
</div>
);
}

const brand = SdkConfig.get("brand");
Expand Down Expand Up @@ -97,7 +99,7 @@ export default function DesktopBuildsNotice({ isRoomEncrypted, kind }: IProps) {
}

return (
<div className="mx_DesktopBuildsNotice">
<div className="mx_SearchWarning">
{ logo }
<span>{ text }</span>
</div>
Expand Down
4 changes: 2 additions & 2 deletions src/components/views/rooms/SearchBar.tsx
Expand Up @@ -20,10 +20,10 @@ import classNames from "classnames";

import AccessibleButton from "../elements/AccessibleButton";
import { _t } from '../../../languageHandler';
import DesktopBuildsNotice, { WarningKind } from "../elements/DesktopBuildsNotice";
import { PosthogScreenTracker } from '../../../PosthogTrackers';
import { getKeyBindingsManager } from "../../../KeyBindingsManager";
import { KeyBindingAction } from "../../../accessibility/KeyboardShortcuts";
import SearchWarning, { WarningKind } from "../elements/SearchWarning";

interface IProps {
onCancelClick: () => void;
Expand Down Expand Up @@ -127,7 +127,7 @@ export default class SearchBar extends React.Component<IProps, IState> {
</div>
<AccessibleButton className="mx_SearchBar_cancel" onClick={this.props.onCancelClick} />
</div>
<DesktopBuildsNotice isRoomEncrypted={this.props.isRoomEncrypted} kind={WarningKind.Search} />
<SearchWarning isRoomEncrypted={this.props.isRoomEncrypted} kind={WarningKind.Search} />
</>
);
}
Expand Down
14 changes: 7 additions & 7 deletions test/components/views/rooms/SearchBar-test.tsx
Expand Up @@ -17,7 +17,7 @@ limitations under the License.
import React from 'react';
import { mount } from "enzyme";

import DesktopBuildsNotice from "../../../../src/components/views/elements/DesktopBuildsNotice";
import SearchWarning from "../../../../src/components/views/elements/SearchWarning";
import { PosthogScreenTracker } from "../../../../src/PosthogTrackers";
import SearchBar, { SearchScope } from "../../../../src/components/views/rooms/SearchBar";
import { KeyBindingAction } from "../../../../src/accessibility/KeyboardShortcuts";
Expand All @@ -39,8 +39,8 @@ jest.mock("../../../../src/KeyBindingsManager", () => ({
{ getAccessibilityAction: jest.fn(() => mockCurrentEvent) })),
}));

/** mock out DesktopBuildsNotice component so it doesn't affect the result of our test */
jest.mock('../../../../src/components/views/elements/DesktopBuildsNotice', () => ({
/** mock out SearchWarning component so it doesn't affect the result of our test */
jest.mock('../../../../src/components/views/elements/SearchWarning', () => ({
__esModule: true,
WarningKind: {
get Search() { // eslint-disable-line @typescript-eslint/naming-convention
Expand Down Expand Up @@ -73,13 +73,13 @@ describe("SearchBar", () => {

it("must render child components and pass necessary props", () => {
const postHogScreenTracker = wrapper.find(PosthogScreenTracker);
const desktopBuildNotice = wrapper.find(DesktopBuildsNotice);
const searchWarning = wrapper.find(SearchWarning);

expect(postHogScreenTracker.length).toBe(1);
expect(desktopBuildNotice.length).toBe(1);
expect(searchWarning.length).toBe(1);
expect(postHogScreenTracker.props().screenName).toEqual("RoomSearch");
expect(desktopBuildNotice.props().isRoomEncrypted).toEqual(searchProps.isRoomEncrypted);
expect(desktopBuildNotice.props().kind).toEqual(mockWarningKind);
expect(searchWarning.props().isRoomEncrypted).toEqual(searchProps.isRoomEncrypted);
expect(searchWarning.props().kind).toEqual(mockWarningKind);
});

it("must not search when input value is empty", () => {
Expand Down

0 comments on commit 7c07ad1

Please sign in to comment.