Files
baythn_bot/FileBrowserSelect.py
2025-12-19 20:40:02 +01:00

33 lines
1.0 KiB
Python

from discord.ui import *
import discord
from typing import *
from main import show_file_diff
class FileBrowserSelect(Select):
"""Dropdown for browsing files in a commit"""
def __init__(self, files: List[Dict], commit_sha: str):
options = [
discord.SelectOption(
label=f"{f['filename'][:45]}",
value=str(i),
description=f"+{f.get('additions', 0)}/-{f.get('deletions', 0)} - {f.get('status', 'modified')}"
)
for i, f in enumerate(files[:25])
]
super().__init__(
placeholder="📄 Select a file to view diff...",
min_values=1,
max_values=1,
options=options
)
self.files = files
self.commit_sha = commit_sha
async def callback(self, interaction: discord.Interaction):
selected_idx = int(self.values[0])
file_info = self.files[selected_idx]
filename = file_info['filename']
await show_file_diff(interaction, self.commit_sha, filename)