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)