Skip to content

Commit c57e342

Browse files
committed
Fix one-page paginator
1 parent 0e05f44 commit c57e342

File tree

3 files changed

+23
-15
lines changed

3 files changed

+23
-15
lines changed

bot.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
__version__ = "4.0.0-dev8"
1+
__version__ = "4.0.0-dev9"
22

33

44
import asyncio

core/paginator.py

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -87,27 +87,31 @@ async def show_page(self, index: int) -> typing.Optional[typing.Dict]:
8787
def update_disabled_status(self):
8888
if self.current == self.first_page():
8989
# disable << button
90-
if self._buttons_map["<<"]:
90+
if self._buttons_map["<<"] is not None:
9191
self._buttons_map["<<"].disabled = True
9292

93-
self._buttons_map["<"].disabled = True
93+
if self._buttons_map["<"] is not None:
94+
self._buttons_map["<"].disabled = True
9495
else:
95-
if self._buttons_map["<<"]:
96+
if self._buttons_map["<<"] is not None:
9697
self._buttons_map["<<"].disabled = False
9798

98-
self._buttons_map["<"].disabled = False
99+
if self._buttons_map["<"] is not None:
100+
self._buttons_map["<"].disabled = False
99101

100102
if self.current == self.last_page():
101103
# disable >> button
102104
if self._buttons_map[">>"] is not None:
103105
self._buttons_map[">>"].disabled = True
104106

105-
self._buttons_map[">"].disabled = True
107+
if self._buttons_map[">"] is not None:
108+
self._buttons_map[">"].disabled = True
106109
else:
107110
if self._buttons_map[">>"] is not None:
108111
self._buttons_map[">>"].disabled = False
109112

110-
self._buttons_map[">"].disabled = False
113+
if self._buttons_map[">"] is not None:
114+
self._buttons_map[">"].disabled = False
111115

112116
async def create_base(self, item) -> None:
113117
"""
@@ -151,7 +155,10 @@ async def run(self) -> typing.Optional[Message]:
151155
"""
152156
if not self.running:
153157
await self.show_page(self.current)
154-
await self.view.wait()
158+
159+
if self.view is not None:
160+
await self.view.wait()
161+
155162
await self.close(delete=False)
156163

157164
async def close(
@@ -182,12 +189,13 @@ async def close(
182189

183190
self.running = False
184191

185-
self.view.stop()
186-
if delete:
187-
await message.delete()
188-
else:
189-
self.view.clear_items()
190-
await message.edit(view=self.view)
192+
if self.view is not None:
193+
self.view.stop()
194+
if delete:
195+
await message.delete()
196+
else:
197+
self.view.clear_items()
198+
await message.edit(view=self.view)
191199

192200

193201
class PaginatorView(View):

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ extend-exclude = '''
2121

2222
[tool.poetry]
2323
name = 'Modmail'
24-
version = '4.0.0-dev8'
24+
version = '4.0.0-dev9'
2525
description = "Modmail is similar to Reddit's Modmail, both in functionality and purpose. It serves as a shared inbox for server staff to communicate with their users in a seamless way."
2626
license = 'AGPL-3.0-only'
2727
authors = [

0 commit comments

Comments
 (0)