54 Commits

Author SHA1 Message Date
Rapptz
c68ea67213 Properly handle inheritance overriding in View subclasses 2022-04-05 09:41:48 -04:00
Rapptz
1458251736 Change View.children to be a property
This allows users to call remove_item in a loop. Likewise, it prevents
the footgun of doing children.append(...) which does not uphold the
invariants with the weight system.
2022-04-03 20:13:42 -04:00
Rapptz
b4fbb08818 Allow runtime modification of timeout expiry at runtime
This is done through setting View.timeout while it's running
2022-03-31 01:54:13 -04:00
Rapptz
968a1f366f Change View callback order to (self, interaction, item)
This is more consistent with the rest of the library which always has
the interaction as the first parameter. This has been done before in
the command extension as well, the first parameter is always either
self or the context.
2022-03-24 23:00:50 -04:00
chromacoat dreamkey
515d17405a
Fix typos in some View methods' docstrings 2022-03-20 12:59:23 -04:00
Pat
94f4da9248
Change View child mutators to be fluent-style methods 2022-03-19 04:48:50 -04:00
Rapptz
26457b6d50 Remove automatic defer behaviour from View and Modal
This doesn't make as much sense anymore now that
InteractionResponse.edit_message exists.
2022-03-15 10:30:19 -04:00
Rapptz
934ab4151a Mark state refresh methods as private with an underscore
People kept wondering what it is or what it does.
2022-03-14 07:50:25 -04:00
Stocker
5aa696ccfa
Fix typing issues and improve typing completeness across the library
Co-authored-by: Danny <Rapptz@users.noreply.github.com>
Co-authored-by: Josh <josh.ja.butt@gmail.com>
2022-03-13 23:52:10 -04:00
Rapptz
c0890bfbc1 Remove unused View._expires_at private function 2022-03-13 11:50:09 -04:00
Han Seung Min - 한승민
93af158b0c
Refactor loop code to allow usage of asyncio.run 2022-03-13 04:54:14 -04:00
Stella
2b600241a4
Fix Modal.stop sometimes not removing from the store 2022-03-07 17:39:00 -05:00
Rapptz
4c8b1f9abd Remove unused imports 2022-03-05 21:40:42 -05:00
Josh
d409ddd227
Alter return-type of button/select decorators 2022-02-21 21:54:44 -05:00
Rapptz
88b520b5ab Reformat code using black
Segments where readability was hampered were fixed by appropriate
format skipping directives. New code should hopefully be black
compatible. The moment they remove the -S option is probably the moment
I stop using black though.
2022-02-20 08:04:58 -05:00
Josh
19c6687b55
Add support for Modal Interactions 2022-02-20 04:57:44 -05:00
Rapptz
c22f058fa0 Fix views not being removed upon timeout 2022-02-17 07:35:12 -05:00
Rapptz
0cc67e58ed Fallback to None message_id searches in View dispatch
Not all persistent views have an associated message_id attached to
them.

Fix #7319
2021-08-01 03:30:45 -04:00
Rapptz
b87d306a70 Remove unused variable in view 2021-08-01 02:40:11 -04:00
Rapptz
e795d341e7 Change View dispatch mechanism to be keyed by message_id as well
If different persistent view instances are used within different
message_ids their callbacks will get called without differentiating
between them, leading to potential issues such as 404 errors. This
change makes it so N views with custom IDs bound to N message_ids
will no longer conflict with one another.
2021-07-31 23:08:05 -04:00
scrazzz
a0e5e062c9
Add versionadded to ui.View and ui.Item 2021-07-21 02:47:52 -04:00
Kaylynn Morgan
feed302269
Fix documentation note for interaction_check 2021-07-21 02:46:52 -04:00
Rapptz
8df35c83a9 Remove extraneous dict assignment from view store 2021-07-07 20:19:17 -04:00
Rapptz
074f34a5fa Specify View timeouts is in seconds 2021-07-04 07:07:38 -04:00
Rapptz
d7ed884593 Rework view timeouts to work as documented 2021-07-02 09:17:32 -04:00
Josh
d001b9d0ee
[docs] Fix more references
Co-Authored-By: Riley Shaw <30989490+ShineyDev@users.noreply.github.com>
2021-07-01 07:48:37 -04:00
Rapptz
c1f1c67eed Change timeout parameter in View.from_message to keyword only 2021-06-30 03:15:45 -04:00
Rapptz
d8075d5412 Add View.from_message to convert message components to a View 2021-06-30 03:06:51 -04:00
Rapptz
157caaec7c Add conversion routine for SelectMenu to ui.Select 2021-06-30 02:55:03 -04:00
Rapptz
04573c3c06 Make View timeout parameter keyword-only 2021-06-10 09:06:04 -04:00
UP929312
4724943861
Grammatical improvements in View documentation 2021-06-08 06:54:10 -04:00
Rapptz
81e9d70b7b Add pre-conditions to avoid on_timeout being called after stop()
Apparently the cancellation request for a TimerHandle doesn't
necessarily have to be honoured despite large periods of time passing
2021-06-06 07:05:17 -04:00
Rapptz
876b1e0f3e Add View.on_error callback for swallowed exceptions 2021-06-05 08:22:44 -04:00
Rapptz
dbd9ed2c41 Add View.is_dispatching to detect whether a view has been added 2021-06-04 04:30:19 -04:00
Rapptz
78275023cc Add Client.persistent_views to get all persistent views 2021-05-31 23:15:12 -04:00
Rapptz
7c40e83d10 Ensure views added to Client.add_view are persistent views 2021-05-31 23:08:08 -04:00
Rapptz
d0097c4281 Remove view syncing before editing in views
This prevents a potential race condition when a MESSAGE_UPDATE is
received syncing and refreshing the view components causing a desync.
2021-05-31 05:50:40 -04:00
Rapptz
2ed3e049e1 Add View.is_finished() to query listening state 2021-05-31 00:12:08 -04:00
Rapptz
90a28d48d5 Fix potential KeyError when removing views 2021-05-30 12:29:46 -04:00
Rapptz
c9cdb47338 Add __repr__ for View 2021-05-30 11:24:23 -04:00
Rapptz
7bd1211b36 Rework item grouping behaviour to take into consideration weights
This also renames `group` into `row`
2021-05-29 23:58:37 -04:00
Rapptz
c21d12be5e Check future state before setting result in View 2021-05-29 05:52:05 -04:00
Rapptz
f4fe247813 Remove __slots__ from View 2021-05-28 08:39:34 -04:00
Rapptz
ef9f61a933 Add support for select components 2021-05-28 05:34:21 -04:00
Rapptz
263f45d05b Fix View.wait not returning when it times out
This also makes it so it returns the reason why the wait finished.
2021-05-28 00:53:28 -04:00
Rapptz
3f60997630 Add a timeout callback for detecting when a View times out 2021-05-28 00:53:28 -04:00
Rapptz
97f308d219 Add View.remove_item and View.clear_items 2021-05-28 00:53:28 -04:00
Rapptz
3453992ce6 Add View.interaction_check for interaction pre-conditions 2021-05-28 00:53:28 -04:00
Rapptz
65db814d4a Add a way to wait for a view to finish its interactions 2021-05-27 23:31:48 -04:00
Rapptz
fbafe20e51 Allow View to be instantiated without subclassing 2021-05-27 01:41:18 -04:00