2
0
mirror of synced 2025-01-23 12:58:52 +00:00

605 Commits

Author SHA1 Message Date
Sale Djenic
c2bab872be refactor(StatusChatList): updates due to chat & communities models refactored
Updated Models.qml for chats and communities models to reflect changes due to
refactor in the actual backend.`StatusChatList` and `StatusChatListAndCategories`
components updated accordingly.
2022-02-01 11:10:09 +01:00
Sale Djenic
c6893b0c7f refactor(StatusAppNavBar): profile nav bar button added
Profile button of type `StatusNavBarTabButton` added to `StatusAppNavBar`
and exposed so it can be optionally set from outside of the component.
2022-02-01 11:10:09 +01:00
Sale Djenic
2ee91475e5 refactor(StatusAppNavBar): navigation bar displays buttons based on set model
`StatusAppNavBar` component is refactored in order to meet new changes we
have on the backend in the desktop app.
2022-02-01 11:10:09 +01:00
Noelia
c5a605bf73
feat(StatusMemberListItem): Implement StatusMemberListItem (#539)
Create component StatusMemberListItem.

Add StatusMemberListItem component in sandbox\controls\ListItems for testing all its variants and demo app.

Add new properties in StatusListItem.

Reorganize StatusListItem.qml following Qt conventions.

Add badge in StatusSmartIndenticon component that allows configure a colored state.

Closes #515
2022-01-28 15:29:29 +01:00
Noelia
626695da25
feat(StatusQ.Controls): Introduce StatusPasswordStrengthIndicator
Create a password strength indicator component with the corresponding variation.

Create a base StatusProgressBar component.

Add new miscColor12.

Closes #528
2022-01-24 10:59:33 +01:00
Khushboo Mehta
ea9556948b feat(StatusMessage): Introducing a new StatusQ Component for Chat Messages
The below mentioned features have been implemented in this component
1. Profile Picture of sender
2. Sender details - name, secondaryName, chatID
3. Text content
4. Image Content
5. Sticker Content
6. Audio Content
7. Reply Component with all the details for the message beinf replied to
8. Pinned component for Pinned message
9. Edit Component to edit the message
10. Loades to load the below -
    a. Link content loader
    b. transaction content
    c. invitation bubble
    d. footer - in this case to show emoji reactions to a message
    e. quick actions loader to show the related quick actions
2022-01-21 11:41:58 +01:00
Alexandra Betouni
0056df517d refactor: refactored/cleaned up sandbox app
Grouped QML files by pages, controls and demo app
related stuff
2022-01-19 16:22:52 +01:00
Noelia
35d12f444d
feat(StatusBanner): introduce type variants for different banner styles
* feat(sandbox/controls): Added StatusBanner component in controls view

In order to test StatusBanner.qml ui component it has been added into the Sandbox app as another Control.

* chore(sandbox/controls): Refactor `StatusBanner' component

Create enum to allow selecting StatusBanner type (`Info`, `Danger`, `Success`, `Warning`).

Add new success color with some opacity in ThemePalette.

* chore(Controls/StatusBanner): Use states instead of function

To have a cleaner code, it has been added states to manage type property changes.

* chore(Controls/StatusBanner): Remove unnecessary stuff

Remove unnecessary name property.
Remove successColor3 property.
2022-01-14 20:18:57 +01:00
Noelia
c56dcd9eb4
Created new UI component StatusBanner and added into StatusQ/Controls 2022-01-12 09:37:17 +01:00
Khushboo Mehta
5a416aa1c9 fix(StatusBaseInput): Corrects allignment of the placeholder text in the StatusBaseInput. 2021-12-03 13:54:20 +01:00
Khushboo Mehta
ab6bdf54c0 fix(StatusChatListItem): This change fixes the issue of the chat list items getting a highlight even when they are not really hovered
The issue is caused by the fact that the MouseArea returns containsMouse as true even when the item is not hovered.
The issue is reproduced when the model changes dynamically in the StatusChatList, thus causing the StatusChatListItem to be recreated and
this is when the containsMouse remains true even though the item is not hovered.
I see a bunch of issues in the QT bug list with regards to the containsMouse property but are still open.
A solution to this is to use HoverHandler which is a more reliable way getting hovered events for an item.
2021-12-03 12:32:24 +01:00
Pascal Precht
2336b6aab1 feat(StatusModal): introduce hasCloseButton property
This property can be used to hide the close button, as there are some
modals that shouldn't allow users to "x" modals away.
2021-12-01 10:21:51 +01:00
Pascal Precht
b7883e8298 fix(StatusListItem): ensure title is elided 2021-11-30 14:09:27 +01:00
Khushboo Mehta
8d2121ade6 fix(StatusImageWithTitle): Fix position of the edit title button 2021-11-30 13:58:27 +01:00
Khushboo Mehta
f82ce8b732 feat(StatusListItem): Expose the Aside text so that it can be modified from the outside 2021-11-30 13:58:27 +01:00
Khushboo Mehta
419b738456 fix(StatusAppNavBar): Fixed position of profile button on the NavBar 2021-11-23 10:24:21 +01:00
Anthony Laibe
db0244365f fix(StatusAccountSelector): Adapt ui to data model changed 2021-11-19 14:50:00 +01:00
Khushboo Mehta
2040d0f857 fix(StatusAssetSelector): Fixed error of crypto balance not updated correctly
Also added error handling in case in case that crypto symbol image is not available
Added a way to display the balance in currently selected currency on the widget
To do this the consumer of this widget needs to implement "getCurrencyBalanceString" based on the currently selected currency

fixes #4079
2021-11-16 16:08:52 +01:00
Khushboo Mehta
0c715b1717 fix(StatusListItem): This solves the issue of channel list overlpaing when a category is collapsed.
The issue is not reproducible a 100% of time. In order to solve this bug, we have turned on the preventStealing flag for the mousseArea.
Checked for any sideimpacts but didnt find any.
Tried several times and this change seems to solve the bug. Feel free to repoen if you are still able to reproduce this behaviour.

fixes #4047
2021-11-09 10:43:41 +01:00
Jonathan Rainville
ce8d3231be
fix(StatusAccountSelector): adapt AccountSelector to new model (#482) 2021-11-05 14:08:31 -04:00
Pascal Precht
e23dc533bd fix(StatusExpandibleItem): add missing hover indicator in Secondary type
Fixes #478
2021-11-04 14:55:46 +01:00
Anastasiya S
fecfb2a7e9
fix(StatusSearchPopup): disable enter and return keys to avoid UI breakage 2021-11-04 14:54:00 +01:00
Alexandra Betouni
31cfc8833a
fix(StatusSlider): slider background and handle should not depend on root's height
Made slider background and handle to not depend
to root's height so that it covers cases where a
legend is needed thus all should be clickable for
better user experience.

Relates to status-im/status-desktop#3984
2021-11-03 11:29:49 +01:00
Pascal Precht
a91558655c feat(StatusQ.Controls.Validators): introduce StatusUrlValidator 2021-11-03 11:26:00 +01:00
Pascal Precht
dee9f43761 feat(StatusBaseButton): introduce Tiny size 2021-11-03 11:25:49 +01:00
Pascal Precht
f82cd7f52b fix(StatusInput): ensure validator messages are rendered when validators return boolean values
There's two ways to signal that a validator emits invalidity on a control:

1. Its `validate()` method returns `false`
2. Its `validate()` method returns an object

Option 2) allows validators to supply the `errors` object with additional data.

Due to latest changes to `errorMessage` handling in validators, those messages
would not be rendered anymore if a validator returns simply `false` instead of an object.
The reason for that is because the code assumed that only option 2) is gonna happen.

This commit ensures that error messages a displayed in both options.
2021-11-03 11:25:34 +01:00
Pascal Precht
da9dc2f46a fix(StatusModal): render footer correctly based on showFooter flag 2021-11-01 10:48:06 +01:00
Pascal Precht
d301b94c70 feat(StatusQ.Platform): introduce StatusMacNotification component 2021-10-29 10:38:51 +02:00
Pascal Precht
ea9a560277 feat(StatusQ.Controls): introduce StatusWalletColorSelect control
Usage:

```qml
StatusWalletColorSelect {
    model: Theme.palette.accountColors
}

```

Closes #467
2021-10-28 09:15:40 +02:00
Pascal Precht
eb4aae4060 fix(StatusRoundButton): ensure disabled state uses correct background color 2021-10-27 18:00:11 +02:00
Pascal Precht
597ae19242 feat(StatusQ.Controls): introduce StatusWalletColorButton component
Usage:

```qml
StatusWalletColorButton {
    icon.color: Theme.palette.miscColor1
    selected: true
}
```

Closes #466
2021-10-27 17:59:50 +02:00
Pascal Precht
4cc0d2bbca feat(StatusQ.Controls): introduce StatusChatCommandButton
Usage:

```qml
StatusChatCommandButton {
    icon.name: "send"
    icon.color: Theme.palette.miscColor2
    text: "Send transaction"
}
```

Closes #429
2021-10-26 14:26:42 +02:00
Pascal Precht
4bcd89b38a feat(StatusQ.Controls): introduce StatusTabBarIconButton component
Usage:

```qml
StatusTabBarIconButton {
    icon.name: "travel-and-places"
}
```

Closes #428
2021-10-26 14:26:30 +02:00
Alexandra Betouni
98dab4ff82 fix(Popups/StatusMenuItemDelegate) adding checks to avoid undefined errors 2021-10-25 11:59:35 +02:00
Khushboo Mehta
1452748331 feat(StatusSmartIdenticon): Created a new StatusQ componnent to accomodate:
1. A StatusRoundedImage
2. StatusRoundIcon
3. LetterIdenticon

Fallback in case of an error in loading Image to the LetterIdenticon
2021-10-22 11:02:05 +02:00
Pascal Precht
074dc22ba5 fix(StatusModal): ensure onEditButtonClicked signal is emitted
Closes #454
2021-10-21 12:36:16 +02:00
Pascal Precht
9c5f79a695 fix(StatusModal): expose header.editable property
Fixes #452
2021-10-21 12:36:16 +02:00
Anastasiya S
6114c99311 chore(StatusChatInfoButton): add object name for pin counter for testing purposes 2021-10-20 09:22:35 +02:00
Anastasiya S
86f50edfdc chore(StatusChatInfoButton): add object name for testing purposes 2021-10-19 15:06:13 +02:00
B.Melnik
8360d3e415 chore(ForTests): Add ojectName's for modals 2021-10-19 08:04:16 +02:00
Khushboo Mehta
71fbdef164 feat(StatusFlatRoundButton): Update the StatusFlatRoundButton to take over button behaviour from StatusIconButton under ui/shared/status
1. Added icon disabledColor property under StatusIconSettings
2. Added Tertiary and Quaternary type to accomodate hovered behavior needed in many buttons
3. Added a missing gif icon.
2021-10-19 08:04:00 +02:00
Pascal Precht
8aba017c24 fix: use proper double checkmark icon 2021-10-18 16:52:32 +02:00
Pascal Precht
a37489204c fix(StatusBaseButton): introduce missing highlighted property 2021-10-18 16:47:51 +02:00
Pascal Precht
bdd699557d feat(StatusQ.Controls): introduce StatusColorSelector component
This is a select component to pick from various supplied colors.

Usage:

```qml
import StatusQ.Controls 0.1

StatusColorSelector {
    model: ["red", "blue", "green"]
}

```

Closes #444
2021-10-15 11:04:22 +02:00
Pascal Precht
9fdc9aeaa3 feat(StatusQ.Controls): introduce StatusAssetSelector component
This is used for a more complex amount and asset selector component.

Usage:

```qml
import StatusQ.Controls 0.1

StatusAssetSelector {
    assets: ListModel {
        ListElement {
            address: "0x1234"
            name: "Status Network Token"
            value: "20"
            symbol: "SNT"
            fiatBalance: "9992.01"
            fiatBalanceDisplay: "9992.01"
        }
        ListElement {
            address: "0x1234"
            name: "DAI Token"
            value: "20"
            symbol: "DAI"
            fiatBalance: "20"
            fiatBalanceDisplay: "20"
        }
    }
}
```

Closes #442
2021-10-15 11:03:31 +02:00
Pascal Precht
6789446df3 feat(StatusQ.Components): introduce StatusAddress component
This introduces a `StatusAddress` component which renders an address
and can be made `expandable` by applying a `width`:

```qml
import StatusQ.Components 0.1

// Simple case
StatusAddress {
    text: "0x9ce0056c5fc6bb9459a4dcfa35eaad8c1fee5ce9"
}

// Expandable case
Item {
    width: 200
    height: childrenRect.height
    StatusAddress {
        text: "0x9ce0056c5fc6bb9459a4dcfa35eaad8c1fee5ce9"
        expandable: true
        width: parent.width
    }
}

```

Closes #430
2021-10-15 11:02:41 +02:00
Pascal Precht
5e15cc49f6 feat(StatusQ.Controls): introduce StatusAccountSelector component
This commit moves the original `AccountSelector` into StatusQ and makes it
a `StatusAccountSelector`. The API has been preserved. The only difference is
that it's internally relying completely on `StatusQ.Core.Theme` and `StatusQ.Controls`
components instead.

Usage:

```qml
import StatusQ.Controls 0.1

StatusAccountSelector {
    accounts: ListModel {
        ListElement {
            name: "Pascal"
            address: "0x1234567891011"
            iconColor: "red"
            balance: "0"
            walletType: "generated"
            assets: []
            fiatBalance: "1199.02"
        }
        ListElement {
            name: "Boris"
            address: "0x123"
            iconColor: "red"
            balance: "0"
            walletType: "generated"
            assets: []
            fiatBalance: "0"
        }
        ListElement {
            name: "Alexandra"
            address: "0x123"
            iconColor: "yellow"
            balance: "0"
            walletType: "generated"
            assets: []
            fiatBalance: "0"
        }
        ListElement {
            name: "Khushboo"
            address: "0x123"
            iconColor: "blue"
            balance: "0"
            walletType: "generated"
            assets: []
            fiatBalance: "0"
        }
    }
}
```

Closes #435
2021-10-15 11:02:28 +02:00
Pascal Precht
6e10959e40 feat(StatusQ.Controls): introduce StatusSelect
This introduces a new `StatusSelect` component which is a select form control.
The `model` property can be used to apply a `ListModel` for dynamic data.
To give users full control over what the menu items look like, `StatusSelect`
exposes a `selectMenu.delegate` property.

Most of the time this should be a `StatusMenuItemDelegate` to get access to the
comple `MenuItem` component (remember that `StatusMenuItem` is merely an `Action`
type).

`StatusMenuItemDelegate` derives most of its behaviour by its applied `action`,
so the easiest way to construct a dynamic select with StatusQ menu item look and feel
is a combination of `StatusMenuItemDelegate` and `StatusMenuItem` as shown below.

Further more, because `StatusSelect` can't know what the `delegate` is going to look like
it also can't decide what data goes into a `selectedItem`. Therefore, it offers another API,
the `selectedItemComponent` which can be any component. This component can then be accessed
by menu item actions to set corresponding properties.

Usage:

```qml
import StatusQ.Controls 0.1

StatusSelect {
    label: "Some label"
    model: ListModel {
        ListElement {
            name: "Pascal"
        }
        ListElement {
            name: "Khushboo"
        }
        ListElement {
            name: "Alexandra"
        }
        ListElement {
            name: "Eric"
        }
    }

    selectMenu.delegate: StatusMenuItemDelegate {
        statusPopupMenu: select
        action: StatusMenuItem {
            iconSettings.name: "filled-account"
            text: name
            onTriggered: {
                selectedItem.text = name
            }
        }
    }

    selectedItemComponent: Item {
        id: selectedItem
        anchors.fill: parent
        property string text: ""

        StatusBaseText {
            text: selectedItem.text
            anchors.centerIn: parent
            color: Theme.palette.directColor1
        }
    }
}
```

Closes #436
2021-10-15 11:00:30 +02:00
Pascal Precht
0764e25a58 feat(StatusQ.Popups): introduce StatusMenuItemDelegate
This extracts the `MenuItem` delegate used in `StatusPopupMenu` into its
own component so it can be easily reused for cases where simply supplying the
popup menu with `StatusMenuItem` (which is of type `Action`) isn't enough.

Ideally, the `StatusMenuItemDelegate` would be called `StatusMenuItem` but that
would be a breaking change.

Usage:

```qml

StatusPopupMenu {
    delegate: StatusMenuItemDelegate {
        ...
    }
}
2021-10-15 11:00:18 +02:00
B.Melnik
5043b0b625
feat(StatusModal): Add edit avatar button
Part of https://github.com/status-im/status-desktop/issues/3734
2021-10-15 10:49:40 +02:00