Skip to content

Commit 95a5b0e

Browse files
Niloth-ptimabbott
authored andcommitted
refactor: model/views: Simplify functions handling message reactions.
- Simplified reaction toggling in `toggle_message_reaction()` - Simplified reaction event handling in `_handle_reaction_event()` - Simplified reaction agreement command logic Removed comments for self-explanatory code.
1 parent d88adae commit 95a5b0e

File tree

2 files changed

+10
-20
lines changed

2 files changed

+10
-20
lines changed

zulipterminal/model.py

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -453,17 +453,11 @@ def _start_presence_updates(self) -> None:
453453
def toggle_message_reaction(
454454
self, message: Message, reaction_to_toggle: str
455455
) -> None:
456-
# Check if reaction_to_toggle is a valid original/alias
457456
assert reaction_to_toggle in self.all_emoji_names
458457

459458
for emoji_name, emoji_data in self.active_emoji_data.items():
460-
if (
461-
reaction_to_toggle == emoji_name
462-
or reaction_to_toggle in emoji_data["aliases"]
463-
):
464-
# Found the emoji to toggle. Store its code/type and dont check further
465-
emoji_code = emoji_data["code"]
466-
emoji_type = emoji_data["type"]
459+
if reaction_to_toggle in (emoji_name, *emoji_data["aliases"]):
460+
emoji_code, emoji_type = emoji_data["code"], emoji_data["type"]
467461
break
468462

469463
reaction_to_toggle_spec = dict(
@@ -1838,25 +1832,22 @@ def _handle_reaction_event(self, event: Event) -> None:
18381832
"""
18391833
assert event["type"] == "reaction"
18401834
message_id = event["message_id"]
1841-
# If the message is indexed
18421835
if message_id in self.index["messages"]:
18431836
message = self.index["messages"][message_id]
18441837
if event["op"] == "add":
18451838
message["reactions"].append(
18461839
{
1847-
"user": event["user"],
1848-
"reaction_type": event["reaction_type"],
1849-
"emoji_code": event["emoji_code"],
1850-
"emoji_name": event["emoji_name"],
1840+
key: event.get(key)
1841+
for key in ["user", "reaction_type", "emoji_code", "emoji_name"]
18511842
}
18521843
)
18531844
else:
1854-
emoji_code = event["emoji_code"]
18551845
for reaction in message["reactions"]:
18561846
# Since Who reacted is not displayed,
18571847
# remove the first one encountered
1858-
if reaction["emoji_code"] == emoji_code:
1848+
if reaction["emoji_code"] == event["emoji_code"]:
18591849
message["reactions"].remove(reaction)
1850+
break
18601851

18611852
self.index["messages"][message_id] = message
18621853
self._update_rendered_view(message_id)

zulipterminal/ui_tools/views.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -241,11 +241,10 @@ def keypress(self, size: urwid_Size, key: str) -> Optional[str]:
241241
elif is_command_key("REACTION_AGREEMENT", key) and self.focus is not None:
242242
message = self.focus.original_widget.message
243243
message_reactions = message["reactions"]
244-
if len(message_reactions) > 0:
245-
for reaction in message_reactions:
246-
emoji = reaction["emoji_name"]
247-
self.model.toggle_message_reaction(message, emoji)
248-
break
244+
if message_reactions:
245+
self.model.toggle_message_reaction(
246+
message, message_reactions[0]["emoji_name"]
247+
)
249248

250249
key = super().keypress(size, key)
251250
return key

0 commit comments

Comments
 (0)