33 lines
1.0 KiB
Python
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)
|
|
|