Commit graph

472 commits

Author SHA1 Message Date
Ajay Bura
87f3afd8fd Fix members btn not visible in small devices 2022-04-24 16:47:24 +05:30
Ajay Bura
53f1129242 Fix app stuck on welcome screen in small device 2022-04-24 16:35:42 +05:30
Ajay Bura
74216f75e2 Fix padding in room header 2022-04-24 16:17:26 +05:30
Ajay Bura
ed8eca0c1d Remove unwanted css 2022-04-24 15:55:05 +05:30
Laurenz
dc8e6e53c7
Adapt to different device widths (#401)
* Now adapting to small screen sizes, needs improvements

* Fix that site only gets into mobile mode when resized

* - Added navigation event triggered if user requests to return to navigation on compact screens
- People drawer wont be shown on compact screens
  - Still accessible using settings
  - would be duplicated UI
- mobileSize is now compactSize

* Put threshold for collapsing the base UI in a shared file

* Switch to a more simple solution using CSS media queries over JS
- Move back button to the left a bit so it doesnt get in touch with room icon

* switch from component-individual-thresholds to device-type thresholds
- <750px: Mobile
- <900px: Tablet
- >900px: Desktop

* Make Settings drawer component collapse on mobile

* Fix EmojiBoard not showing up and messing up UI when screen is smaller than 360px

* Improve code quality; allow passing classNames to IconButton
- remove unnessesary div wrappers
- use dir.side where appropriate
- rename threshold and its mixins to more descriptive names
- Rename "OPEN_NAVIGATION" to "NAVIGATION_OPENED"

* - follow BEM methology
- remove ROOM_SELECTED listener
- rename NAVIGATION_OPENED to OPEN_NAVIGATION where appropriate
- this does NOT changes that ref should be used for changing visability

* Use ref to change visability to avoid re-rendering

* Use ref to change visability to avoid re-rendering

* Fix that room component is not hidden by default.
This resulted in a broken view when application is viewed in mobile size without having selected a room since loading.

* fix: leaving a room should bring one back to navigation

Co-authored-by: Ajay Bura <32841439+ajbura@users.noreply.github.com>
2022-04-24 15:53:10 +05:30
Ajay Bura
989ab5a432
Add support to manage cross-signing and key backup (#461)
* Add useDeviceList hook

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Add isCrossVerified func to matrixUtil

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Add className prop in sidebar avatar comp

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Add unverified session indicator in sidebar

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Add info card component

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Add css variables

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Add cross signin status hook

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Add hasCrossSigninAccountData function

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Add cross signin info card in device manage component

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Add cross signing and key backup component

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Fix typo

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* WIP

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Add cross singing dialogs

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Add cross signing set/reset

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Add SecretStorageAccess component

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Add key backup

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* WIP

* WIP

* WIP

* WIP

* Show progress when restoring key backup

* Add SSSS and key backup
2022-04-24 15:42:24 +05:30
Krishan
8b3bd38bad
Improve strings (#488)
* Update SpaceOptions.jsx

* Update RoomOptions.jsx

* Update RoomProfile.jsx

* Update ProfileEditor.jsx

* Update RoomSettings.jsx

* Update SpaceSettings.jsx

* Update Message.jsx

* Update DeviceManage.jsx

* Update Message.jsx

* Update RoomProfile.jsx
2022-04-18 08:55:16 +05:30
Krishan
699bbee544
Fix max power level in room permissions (#480)
* Fix power level in permissions

Fix allowed value of power level in room permissions, earlier the max value was 100 even if room members have power level more than 100.

* Update RoomPermissions.jsx
2022-04-11 21:29:39 +05:30
Ajay Bura
3f6e3074f2
Add reusable dialog (#459)
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-03-31 20:39:05 +05:30
Krishan
1a6e3e73c5
String update and file extension name consistency (#436)
* Fixes #434

* Fixes #433

* Prtially fixes #432

* Disable auto labelling of issues

* Use yaml instead of yml as recommended by yaml.org

* shortened the strings

* simplified option description
2022-03-30 13:42:52 +05:30
Ajay Bura
9cb13a91cd Fix incorrect custom html crashing app (#429)
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-03-25 10:37:35 +05:30
Ajay Bura
30f8930773 Fix style and string
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-03-24 18:47:53 +05:30
Ajay Bura
0f97de1b09
Fix can't open spaces from public room list (#419)
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-03-23 18:45:13 +05:30
Ajay Bura
e8d6ccec9a
Fix crash on load and room creation (#418)
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-03-23 18:44:53 +05:30
Ajay Bura
005434f79b
Add support for managing sessions (#415)
* Allow node type prop in setting tile

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Update popup window max height

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Add device management setting

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Add password based login

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* truncate long list of verified devices

Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-03-23 18:44:38 +05:30
Ajay Bura
50bf90fada
Redesign app/user settings (#404)
* Redesign app settings

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Redesign user profile in settings

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Update string

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Fix bug

Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-03-21 09:46:11 +05:30
Ajay Bura
abb81b6390 Remove opacity from jump to unread and latest btn (#402)
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-03-20 09:19:20 +05:30
Ajay Bura
ae71a99aa4
Sort search results by activity (#399)
* Sort search result by activity

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Optimize generateResults function codes

Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-03-19 18:55:38 +05:30
Ajay Bura
a7034d6351 Improve jump to bottom btn
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-03-18 11:37:31 +05:30
Ajay Bura
6010b4c252 Fix cyclic dependency in initMatrix
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-03-18 09:22:16 +05:30
Ajay Bura
8330f4fba9
Improve jump to unread button (#396)
* Improve jump to unread button

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Remove unused cod

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Fix mark as read not hidding jump to unread btn

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Add notification mark as read action

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Add esc as hotkey to mark room as read

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Add message icons

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Change jump to unread icon

Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-03-18 09:09:14 +05:30
ginnyTheCat
dc6e153b92
Notification sounds (#367)
* Basic notification sound support

* Add settings option for notification sounds

* Allow sound without desktop notifications
2022-03-18 09:07:11 +05:30
Nitan Alexandru Marcel
a2655ee6a5
Fix loading on older browsers (#397) 2022-03-18 09:06:48 +05:30
ginnyTheCat
b698982186
Add recently used section to emoji board (#373)
* Add recent section to emoji board

* Add section to emoji board sidebar

* Add emoji limit like element web has

* Ignore custom emojis

* Filter out invalid emojis

* Update heart icon with clock

Co-authored-by: Krishan <33421343+kfiven@users.noreply.github.com>
2022-03-17 17:19:14 +05:30
Ajay Bura
5a299b21c5
Sort direct messages by activity (#393)
* Add sort util

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Use sort util for members

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Sort dms by activity

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Sort dms activily

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Chanege roomIdByLastActive func name

Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-03-17 16:55:16 +05:30
Ajay Bura
f5720bde14
Fix new message not appearing (#391)
* Fix new message no appearing

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Fix room not marking as read

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Fix room automatically gets mark as read

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Fix sending wrong read recipt

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Fix sending message not mark as read

Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-03-17 08:16:49 +05:30
Ajay Bura
70ffd7ded8
Fix muted room show unread indicator (#386)
* Move getNotifType function

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Fix bug in getNotiType

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Add isMuted prop in room selector

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Fix muted room show unread indicator

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Fix muted room notification visible in space

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Fix space shows muted room notification on load

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Toggle room mute when changed from other client

Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-03-15 17:21:36 +05:30
Clament John
92a3a8d6fa
Fix view source shows original event for an edited message (#377)
Signed-off-by: Clament John <cj@hackerlab.in>

fixes #376

When we click view source for an edited message we were showing
the original event (the unedited event) instead of the latest
edited event.
2022-03-15 17:20:43 +05:30
Ajay Bura
211fd19031 Prevent unnecessary calc in home roomlist
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-03-14 17:34:34 +05:30
Ajay Bura
af833daee4 Fix root space appear as category in cyclic relation
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-03-13 18:52:51 +05:30
Ajay Bura
d6b880d110 Fix wrong notification count
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-03-13 15:12:54 +05:30
Ajay Bura
a76dcb289a Improve code quality
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-03-12 14:14:56 +05:30
Ajay Bura
d25c3ff4fc Fix pressing crtl/alt key jump to highlighted msg (#344)
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-03-11 14:04:44 +05:30
ginnyTheCat
f0e9de4cf9
Fix not all emoji-only messages being detected as jumbo emoji (#368) 2022-03-11 10:33:58 +05:30
Ajay Bura
82948c1f55 Fix new message do not appear sometimes (#185)
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-03-10 17:58:40 +05:30
Ajay Bura
b8fe4c937e Add dnd space shortcut (#153)
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-03-08 16:34:55 +05:30
Ajay Bura
faaac72b81 Add forward ref in avatar component
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-03-08 16:29:01 +05:30
Ajay Bura
8f41139076 Refactor sidebar avatar component
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-03-07 21:05:47 +05:30
Ajay Bura
e1a67acde1 Add manage pin spaces
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-03-06 17:52:04 +05:30
Ajay Bura
5eda2581f4 Fix side margin
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-03-06 17:49:21 +05:30
Krishan
edcf43efba
Update English strings, fix #352, #354 (#356)
* Fix #354

* Fix #352
2022-03-06 15:57:39 +05:30
Ajay Bura
6b9c8b7a87 Fix roomlist not updating live
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-03-03 18:46:47 +05:30
Ajay Bura
a05b96e9a0 Show categorized subspaces
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-03-03 18:36:53 +05:30
Ajay Bura
699f67aa75 Add rooms category component
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-03-03 18:36:09 +05:30
Ajay Bura
b0c4c53880 Add categorize space option in space settings
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-03-02 21:35:09 +05:30
Ajay Bura
116a9c9de0 Add categorize space option
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-03-02 21:30:14 +05:30
Ajay Bura
e63f8ab8b8 Add categorized spaces hook
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-03-02 21:24:30 +05:30
Ajay Bura
906fc2dd3d Refector room list drawer
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-02-27 21:10:54 +05:30
Ajay Bura
a62df536dd Move space shortcut from roomlist to accountdata
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-02-27 17:02:03 +05:30
Ajay Bura
7db674b65d Fix button styles
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-02-27 16:58:15 +05:30
Ajay Bura
8bc41c2c32 Fix bug when creating room
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-02-27 10:50:27 +05:30
Ajay Bura
79afc7649d Add option to create room/space
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-02-26 21:00:52 +05:30
Ajay Bura
a8ba38ef1e Fix bug in add existing rooms
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-02-23 20:19:56 +05:30
Ajay Bura
d3ddbc0c72 Fix space add options visible in home
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-02-23 19:48:24 +05:30
Ajay Bura
6c4085398e Add option to add existing room in space
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-02-23 19:30:48 +05:30
ginnyTheCat
2308578622
Fix input freeze on sending message (#343) 2022-02-23 08:35:06 +05:30
ginnyTheCat
1d7fbc841e
Add option to view event source (#320)
* Add view source

* Add view source cons

* Change design

* Use PopupWindow instead of Dialog

* Undo changes to Dialog.jsx
2022-02-22 19:01:04 +05:30
Ajay Bura
318e7c7458 Make dialog to add existing rooms to space
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-02-20 20:17:13 +05:30
Ajay Bura
f8e2d27bb0 Add tabIndex prop in checkbox
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-02-20 20:14:28 +05:30
Ajay Bura
44544f3289 Add ability to pass node in dialog title
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-02-20 20:13:59 +05:30
ajbura
70f0f91a17 Fix manage rooms not showing avatar for dms
Signed-off-by: ajbura <ajbura@gmail.com>
2022-02-19 19:41:36 +05:30
ajbura
f1394239a3 Fix search dialog styles
Signed-off-by: ajbura <ajbura@gmail.com>
2022-02-19 19:35:12 +05:30
ajbura
9e810502c2 Fix dialog screen overflow
Signed-off-by: ajbura <ajbura@gmail.com>
2022-02-19 19:28:44 +05:30
ajbura
c67a1752c5 Add ability to remove and suggest/not rooms in manage space
Signed-off-by: ajbura <ajbura@gmail.com>
2022-02-19 16:18:39 +05:30
ajbura
d87e40ada5 Add suggested room label in manage rooms
Signed-off-by: ajbura <ajbura@gmail.com>
2022-02-19 13:40:32 +05:30
ajbura
86bbaa437e Fix manage room showing rooms as dms in some homeserver
Signed-off-by: ajbura <ajbura@gmail.com>
2022-02-18 19:28:55 +05:30
ajbura
96b6b56d95 Update loading screen message
Signed-off-by: ajbura <ajbura@gmail.com>
2022-02-17 21:12:28 +05:30
ajbura
1f6e5e71ef Add ability to explore and join space rooms
Signed-off-by: ajbura <ajbura@gmail.com>
2022-02-16 20:25:36 +05:30
ajbura
a55f1df17f Change class name for drawer breadcrumb
Signed-off-by: ajbura <ajbura@gmail.com>
2022-02-16 19:56:02 +05:30
ajbura
189dc93a6e Add join rle to icon src util function
Signed-off-by: ajbura <ajbura@gmail.com>
2022-02-16 19:52:51 +05:30
ginnyTheCat
8d3f0a9f4d
Create icons for users without an avatar in desktop notifications (#305)
* Add notifications icon for users without an avatar

* Render icon at higher resolution

* Use scale to render at higher resolution
2022-02-15 17:18:25 +05:30
ginnyTheCat
ff9d509137
Prevent crash when opening room permission on conduit homeserver (#312)
* Prevent crash when opening room permission on conduit homeserver

* Make fix easier
2022-02-14 20:41:36 +05:30
ajbura
278fd5bd59 Fix member load triggering re-renders (#261)
Signed-off-by: ajbura <ajbura@gmail.com>
2022-02-13 13:32:57 +05:30
ginnyTheCat
6d9e67b9f2
Fix crashing on droping text (#302)
* Add basic drop overlay

* Prevent crash when dragging text

* Only show popup when files are being dragged

* Make drop box bigger

* Make drag drop overlay without a modal

* Don't show drag drop menu on top of modals

* Use different way to check for modal
2022-02-09 08:29:21 +05:30
ajbura
4803d48ec7 Fix bug in this.isRawModalVisible
Signed-off-by: ajbura <ajbura@gmail.com>
2022-02-08 17:59:15 +05:30
ajbura
7c6a12ea8e Removed dead code
Signed-off-by: ajbura <ajbura@gmail.com>
2022-02-08 17:32:49 +05:30
ajbura
a17d5d01a7 Fix edit message input not expending properly
Signed-off-by: ajbura <ajbura@gmail.com>
2022-02-08 17:27:57 +05:30
ginnyTheCat
cdd909f2dd
Keyboard focus related bugs (#299)
* Focus when opening the emoji board and editing a message

* Clean emoji board after closing

* Focus room search and member search

* Resolve conversations
2022-02-08 17:13:59 +05:30
ajbura
d0e9728c26 Change icon of join public room button
Signed-off-by: ajbura <ajbura@gmail.com>
2022-02-07 15:45:57 +05:30
ajbura
c8ae428df8 Keep direct rooms orthogonal (#183)
Signed-off-by: ajbura <ajbura@gmail.com>
2022-02-05 19:25:59 +05:30
ajbura
a9692f7db4 Show tombstone message in tombstoned room (#195)
Signed-off-by: ajbura <ajbura@gmail.com>
2022-02-05 18:59:44 +05:30
ajbura
d05a426d00 Fix avatar showing av when loading (#247)
Signed-off-by: ajbura <ajbura@gmail.com>
2022-02-05 18:19:30 +05:30
ajbura
a842b4c4d9 Fix select effect in emojiboard (#254)
Signed-off-by: ajbura <ajbura@gmail.com>
2022-02-05 18:07:41 +05:30
ajbura
101abaeda1 Fix sending localEvent id to redact and reply (#231)
Signed-off-by: ajbura <ajbura@gmail.com>
2022-02-05 17:53:02 +05:30
ajbura
bb99167433 Move message options upwards
Signed-off-by: ajbura <ajbura@gmail.com>
2022-02-05 17:51:16 +05:30
ajbura
2bd598f7f8 Trim homserver in Auth component
Signed-off-by: ajbura <ajbura@gmail.com>
2022-02-04 11:43:39 +05:30
ajbura
b008c5f07f Fix reaction tooltip message
Signed-off-by: ajbura <ajbura@gmail.com>
2022-02-04 11:39:18 +05:30
ginnyTheCat
552a324e08
Drag and drop files (#283)
* Add file drop

* Skip if no files are droped

* Show the page is not accepting file on the welcome page
2022-02-03 20:10:22 +05:30
Ajay Bura
b155d7d1ba Show confirm dialog when change your own power level
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-02-01 09:41:50 +05:30
Ajay Bura
5f7fa0557f Add menu header in general settings
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-01-31 15:22:53 +05:30
Ajay Bura
63fb4d57e2 Improve UX of members tab
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-01-31 15:20:12 +05:30
Ajay Bura
b21c8f8c3a Add credits in app about section
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-01-31 12:15:58 +05:30
Ajay Bura
162af35254 Fix bug in room member search
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-01-30 18:57:15 +05:30
Ajay Bura
abe03811f1 Add member list in space settings
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-01-30 18:47:19 +05:30
Ajay Bura
e85a869733 Add max width for room and space options menu
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-01-30 10:41:18 +05:30
Ajay Bura
0c32d5302c Add btn and hotkey to close room settings (#269)
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-01-30 10:05:46 +05:30
Ajay Bura
f310196937 Enable markdown by default
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-01-29 19:54:39 +05:30
ginnyTheCat
c828dfd596
Add Desktop notifications (#252)
* Add notifications

* Abide push actions

* Handle browsers not having notification support

* Ask for notification permission after loading

* Make usePermission work without live permission support

* Focus message when clicking the notification

* make const all caps

* Fix usePermission error in Safari

* Fix live permissions

* Remove userActivity and use document.visibilityState instead

* Change setting label to "desktop notifications"

* Check for notification permissions in the settings.js
2022-01-29 19:50:51 +05:30
Ajay Bura
d0b4e092b3 Add space options in space selector
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-01-29 14:31:14 +05:30
Ajay Bura
91d7d78621 Open space options on right click pinned space icon
Signed-off-by: Ajay Bura <ajbura@gmail.com>
2022-01-29 14:30:42 +05:30