prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Issue Details: Use new assignee selector component
  Update issue details to use the new component in https://github.com/getsentry/sentry/issues/69054
  
  This should be released under a short-lived feature flag.
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `fixtures/page_objects/issue_details.py`
  Content:
  ```
  1 from selenium.webdriver.common.by import By
  2 from selenium.webdriver.support import expected_conditions
  3 from selenium.webdriver.support.wait import WebDriverWait
  4 
  5 from .base import BasePage
  6 from .global_selection import GlobalSelectionPage
  7 
  8 
  9 class IssueDetailsPage(BasePage):
  10     def __init__(self, browser, client):
  11         super().__init__(browser)
  12         self.client = client
  13         self.global_selection = GlobalSelectionPage(browser)
  14 
  15     def visit_issue(self, org, groupid):
  16         self.browser.get(f"/organizations/{org}/issues/{groupid}/")
  17         self.wait_until_loaded()
  18 
  19     def visit_issue_activity(self, org, groupid):
  20         self.browser.get(f"/organizations/{org}/issues/{groupid}/activity/")
  21         self.browser.wait_until_not('[data-test-id="loading-indicator"]')
  22 
  23     def visit_issue_in_environment(self, org, groupid, environment):
  24         self.browser.get(f"/organizations/{org}/issues/{groupid}/?environment={environment}")
  25         self.browser.wait_until(".group-detail")
  26 
  27     def visit_tag_values(self, org, groupid, tag):
  28         self.browser.get(f"/organizations/{org}/issues/{groupid}/tags/{tag}/")
  29         self.browser.wait_until('[data-test-id="group-tag-value"]')
  30 
  31     def get_environment(self):
  32         return self.browser.find_element(
  33             by=By.CSS_SELECTOR, value='[data-test-id="env-label"'
  34         ).text.lower()
  35 
  36     def go_back_to_issues(self):
  37         self.global_selection.go_back_to_issues()
  38 
  39     def api_issue_get(self, groupid):
  40         return self.client.get(f"/api/0/issues/{groupid}/")
  41 
  42     def go_to_subtab(self, key):
  43         tabs = self.browser.find_element(by=By.CSS_SELECTOR, value='[role="tablist"]')
  44         tabs.find_element(by=By.CSS_SELECTOR, value=f'[role="tab"][data-key="{key}"]').click()
  45         self.browser.wait_until_not('[data-test-id="loading-indicator"]')
  46 
  47     def open_issue_errors(self):
  48         self.browser.click(".errors-toggle")
  49         self.browser.wait_until(".entries > .errors ul")
  50 
  51     def open_curl(self):
  52         self.browser.find_element(by=By.XPATH, value="//a//code[contains(text(), 'curl')]").click()
  53 
  54     def resolve_issue(self):
  55         self.browser.click('[aria-label="Resolve"]')
  56         # Resolve should become unresolve
  57         self.browser.wait_until('[aria-label="Resolved"]')
  58 
  59     def archive_issue(self):
  60         self.browser.click('[aria-label="Archive"]')
  61         # Ignore should become unresolve
  62         self.browser.wait_until('[aria-label="Archived"]')
  63 
  64     def bookmark_issue(self):
  65         self.browser.click('button[aria-label="More Actions"]')
  66         self.browser.wait_until('[data-test-id="bookmark"]')
  67         button = self.browser.element('[data-test-id="bookmark"]')
  68         button.click()
  69         self.browser.click('button[aria-label="More Actions"]')
  70         self.browser.wait_until('[data-test-id="unbookmark"]')
  71 
  72     def assign_to(self, user):
  73         assignee = self.browser.find_element(
  74             by=By.CSS_SELECTOR, value='[data-test-id="assigned-to"]'
  75         )
  76 
  77         # Open the assignee picker
  78         assignee.find_element(
  79             by=By.CSS_SELECTOR, value='[data-test-id="assignee-selector"]'
  80         ).click()
  81 
  82         # Wait for the input to be loaded
  83         wait = WebDriverWait(assignee, 10)
  84         wait.until(expected_conditions.presence_of_element_located((By.TAG_NAME, "input")))
  85 
  86         assignee.find_element(by=By.TAG_NAME, value="input").send_keys(user)
  87 
  88         # Click the member/team
  89         options = assignee.find_elements(
  90             by=By.CSS_SELECTOR, value='[data-test-id="assignee-option"]'
  91         )
  92         assert len(options) > 0, "No assignees could be found."
  93         options[0].click()
  94 
  95         self.browser.wait_until_not('[data-test-id="loading-indicator"]')
  96 
  97     def find_comment_form(self):
  98         self.browser.wait_until_test_id("note-input-form")
  99         return self.browser.find_element(
  100             by=By.CSS_SELECTOR, value='[data-test-id="note-input-form"]'
  101         )
  102 
  103     def has_comment(self, text):
  104         element = self.browser.element('[data-test-id="activity-note-body"]')
  105         return text in element.text
  106 
  107     def wait_until_loaded(self):
  108         self.browser.wait_until_not('[data-test-id="loading-indicator"]')
  109         self.browser.wait_until_not('[data-test-id="event-errors-loading"]')
  110         self.browser.wait_until_test_id("linked-issues")
  111         self.browser.wait_until_test_id("loaded-device-name")
  112         if self.browser.element_exists("#grouping-info"):
  113             self.browser.wait_until_test_id("loaded-grouping-info")
  114         self.browser.wait_until_not('[data-test-id="loading-placeholder"]')
  115 
  116     def mark_reviewed(self):
  117         self.browser.click('[aria-label="More Actions"]')
  118         self.browser.wait_until('[data-test-id="mark-review"]')
  119         self.browser.click('[data-test-id="mark-review"]')
  120         self.browser.click('[aria-label="More Actions"]')
  121         self.browser.wait_until('[data-test-id="mark-review"][aria-disabled="true"]')
  122
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/fixtures/page_objects/issue_details.py b/fixtures/page_objects/issue_details.py
  --- a/fixtures/page_objects/issue_details.py
  +++ b/fixtures/page_objects/issue_details.py
  @@ -86,9 +86,7 @@
           assignee.find_element(by=By.TAG_NAME, value="input").send_keys(user)
   
           # Click the member/team
  -        options = assignee.find_elements(
  -            by=By.CSS_SELECTOR, value='[data-test-id="assignee-option"]'
  -        )
  +        options = assignee.find_elements(by=By.CSS_SELECTOR, value='[role="option"]')
           assert len(options) > 0, "No assignees could be found."
           options[0].click()
  
verification_info: {"golden_diff": "diff --git a/fixtures/page_objects/issue_details.py b/fixtures/page_objects/issue_details.py\n--- a/fixtures/page_objects/issue_details.py\n+++ b/fixtures/page_objects/issue_details.py\n@@ -86,9 +86,7 @@\n         assignee.find_element(by=By.TAG_NAME, value=\"input\").send_keys(user)\n \n         # Click the member/team\n-        options = assignee.find_elements(\n-            by=By.CSS_SELECTOR, value='[data-test-id=\"assignee-option\"]'\n-        )\n+        options = assignee.find_elements(by=By.CSS_SELECTOR, value='[role=\"option\"]')\n         assert len(options) > 0, \"No assignees could be found.\"\n         options[0].click()\n", "issue": "Issue Details: Use new assignee selector component\nUpdate issue details to use the new component in https://github.com/getsentry/sentry/issues/69054\r\n\r\nThis should be released under a short-lived feature flag.\n", "before_files": [{"content": "from selenium.webdriver.common.by import By\nfrom selenium.webdriver.support import expected_conditions\nfrom selenium.webdriver.support.wait import WebDriverWait\n\nfrom .base import BasePage\nfrom .global_selection import GlobalSelectionPage\n\n\nclass IssueDetailsPage(BasePage):\n    def __init__(self, browser, client):\n        super().__init__(browser)\n        self.client = client\n        self.global_selection = GlobalSelectionPage(browser)\n\n    def visit_issue(self, org, groupid):\n        self.browser.get(f\"/organizations/{org}/issues/{groupid}/\")\n        self.wait_until_loaded()\n\n    def visit_issue_activity(self, org, groupid):\n        self.browser.get(f\"/organizations/{org}/issues/{groupid}/activity/\")\n        self.browser.wait_until_not('[data-test-id=\"loading-indicator\"]')\n\n    def visit_issue_in_environment(self, org, groupid, environment):\n        self.browser.get(f\"/organizations/{org}/issues/{groupid}/?environment={environment}\")\n        self.browser.wait_until(\".group-detail\")\n\n    def visit_tag_values(self, org, groupid, tag):\n        self.browser.get(f\"/organizations/{org}/issues/{groupid}/tags/{tag}/\")\n        self.browser.wait_until('[data-test-id=\"group-tag-value\"]')\n\n    def get_environment(self):\n        return self.browser.find_element(\n            by=By.CSS_SELECTOR, value='[data-test-id=\"env-label\"'\n        ).text.lower()\n\n    def go_back_to_issues(self):\n        self.global_selection.go_back_to_issues()\n\n    def api_issue_get(self, groupid):\n        return self.client.get(f\"/api/0/issues/{groupid}/\")\n\n    def go_to_subtab(self, key):\n        tabs = self.browser.find_element(by=By.CSS_SELECTOR, value='[role=\"tablist\"]')\n        tabs.find_element(by=By.CSS_SELECTOR, value=f'[role=\"tab\"][data-key=\"{key}\"]').click()\n        self.browser.wait_until_not('[data-test-id=\"loading-indicator\"]')\n\n    def open_issue_errors(self):\n        self.browser.click(\".errors-toggle\")\n        self.browser.wait_until(\".entries > .errors ul\")\n\n    def open_curl(self):\n        self.browser.find_element(by=By.XPATH, value=\"//a//code[contains(text(), 'curl')]\").click()\n\n    def resolve_issue(self):\n        self.browser.click('[aria-label=\"Resolve\"]')\n        # Resolve should become unresolve\n        self.browser.wait_until('[aria-label=\"Resolved\"]')\n\n    def archive_issue(self):\n        self.browser.click('[aria-label=\"Archive\"]')\n        # Ignore should become unresolve\n        self.browser.wait_until('[aria-label=\"Archived\"]')\n\n    def bookmark_issue(self):\n        self.browser.click('button[aria-label=\"More Actions\"]')\n        self.browser.wait_until('[data-test-id=\"bookmark\"]')\n        button = self.browser.element('[data-test-id=\"bookmark\"]')\n        button.click()\n        self.browser.click('button[aria-label=\"More Actions\"]')\n        self.browser.wait_until('[data-test-id=\"unbookmark\"]')\n\n    def assign_to(self, user):\n        assignee = self.browser.find_element(\n            by=By.CSS_SELECTOR, value='[data-test-id=\"assigned-to\"]'\n        )\n\n        # Open the assignee picker\n        assignee.find_element(\n            by=By.CSS_SELECTOR, value='[data-test-id=\"assignee-selector\"]'\n        ).click()\n\n        # Wait for the input to be loaded\n        wait = WebDriverWait(assignee, 10)\n        wait.until(expected_conditions.presence_of_element_located((By.TAG_NAME, \"input\")))\n\n        assignee.find_element(by=By.TAG_NAME, value=\"input\").send_keys(user)\n\n        # Click the member/team\n        options = assignee.find_elements(\n            by=By.CSS_SELECTOR, value='[data-test-id=\"assignee-option\"]'\n        )\n        assert len(options) > 0, \"No assignees could be found.\"\n        options[0].click()\n\n        self.browser.wait_until_not('[data-test-id=\"loading-indicator\"]')\n\n    def find_comment_form(self):\n        self.browser.wait_until_test_id(\"note-input-form\")\n        return self.browser.find_element(\n            by=By.CSS_SELECTOR, value='[data-test-id=\"note-input-form\"]'\n        )\n\n    def has_comment(self, text):\n        element = self.browser.element('[data-test-id=\"activity-note-body\"]')\n        return text in element.text\n\n    def wait_until_loaded(self):\n        self.browser.wait_until_not('[data-test-id=\"loading-indicator\"]')\n        self.browser.wait_until_not('[data-test-id=\"event-errors-loading\"]')\n        self.browser.wait_until_test_id(\"linked-issues\")\n        self.browser.wait_until_test_id(\"loaded-device-name\")\n        if self.browser.element_exists(\"#grouping-info\"):\n            self.browser.wait_until_test_id(\"loaded-grouping-info\")\n        self.browser.wait_until_not('[data-test-id=\"loading-placeholder\"]')\n\n    def mark_reviewed(self):\n        self.browser.click('[aria-label=\"More Actions\"]')\n        self.browser.wait_until('[data-test-id=\"mark-review\"]')\n        self.browser.click('[data-test-id=\"mark-review\"]')\n        self.browser.click('[aria-label=\"More Actions\"]')\n        self.browser.wait_until('[data-test-id=\"mark-review\"][aria-disabled=\"true\"]')\n", "path": "fixtures/page_objects/issue_details.py"}], "after_files": [{"content": "from selenium.webdriver.common.by import By\nfrom selenium.webdriver.support import expected_conditions\nfrom selenium.webdriver.support.wait import WebDriverWait\n\nfrom .base import BasePage\nfrom .global_selection import GlobalSelectionPage\n\n\nclass IssueDetailsPage(BasePage):\n    def __init__(self, browser, client):\n        super().__init__(browser)\n        self.client = client\n        self.global_selection = GlobalSelectionPage(browser)\n\n    def visit_issue(self, org, groupid):\n        self.browser.get(f\"/organizations/{org}/issues/{groupid}/\")\n        self.wait_until_loaded()\n\n    def visit_issue_activity(self, org, groupid):\n        self.browser.get(f\"/organizations/{org}/issues/{groupid}/activity/\")\n        self.browser.wait_until_not('[data-test-id=\"loading-indicator\"]')\n\n    def visit_issue_in_environment(self, org, groupid, environment):\n        self.browser.get(f\"/organizations/{org}/issues/{groupid}/?environment={environment}\")\n        self.browser.wait_until(\".group-detail\")\n\n    def visit_tag_values(self, org, groupid, tag):\n        self.browser.get(f\"/organizations/{org}/issues/{groupid}/tags/{tag}/\")\n        self.browser.wait_until('[data-test-id=\"group-tag-value\"]')\n\n    def get_environment(self):\n        return self.browser.find_element(\n            by=By.CSS_SELECTOR, value='[data-test-id=\"env-label\"'\n        ).text.lower()\n\n    def go_back_to_issues(self):\n        self.global_selection.go_back_to_issues()\n\n    def api_issue_get(self, groupid):\n        return self.client.get(f\"/api/0/issues/{groupid}/\")\n\n    def go_to_subtab(self, key):\n        tabs = self.browser.find_element(by=By.CSS_SELECTOR, value='[role=\"tablist\"]')\n        tabs.find_element(by=By.CSS_SELECTOR, value=f'[role=\"tab\"][data-key=\"{key}\"]').click()\n        self.browser.wait_until_not('[data-test-id=\"loading-indicator\"]')\n\n    def open_issue_errors(self):\n        self.browser.click(\".errors-toggle\")\n        self.browser.wait_until(\".entries > .errors ul\")\n\n    def open_curl(self):\n        self.browser.find_element(by=By.XPATH, value=\"//a//code[contains(text(), 'curl')]\").click()\n\n    def resolve_issue(self):\n        self.browser.click('[aria-label=\"Resolve\"]')\n        # Resolve should become unresolve\n        self.browser.wait_until('[aria-label=\"Resolved\"]')\n\n    def archive_issue(self):\n        self.browser.click('[aria-label=\"Archive\"]')\n        # Ignore should become unresolve\n        self.browser.wait_until('[aria-label=\"Archived\"]')\n\n    def bookmark_issue(self):\n        self.browser.click('button[aria-label=\"More Actions\"]')\n        self.browser.wait_until('[data-test-id=\"bookmark\"]')\n        button = self.browser.element('[data-test-id=\"bookmark\"]')\n        button.click()\n        self.browser.click('button[aria-label=\"More Actions\"]')\n        self.browser.wait_until('[data-test-id=\"unbookmark\"]')\n\n    def assign_to(self, user):\n        assignee = self.browser.find_element(\n            by=By.CSS_SELECTOR, value='[data-test-id=\"assigned-to\"]'\n        )\n\n        # Open the assignee picker\n        assignee.find_element(\n            by=By.CSS_SELECTOR, value='[data-test-id=\"assignee-selector\"]'\n        ).click()\n\n        # Wait for the input to be loaded\n        wait = WebDriverWait(assignee, 10)\n        wait.until(expected_conditions.presence_of_element_located((By.TAG_NAME, \"input\")))\n\n        assignee.find_element(by=By.TAG_NAME, value=\"input\").send_keys(user)\n\n        # Click the member/team\n        options = assignee.find_elements(by=By.CSS_SELECTOR, value='[role=\"option\"]')\n        assert len(options) > 0, \"No assignees could be found.\"\n        options[0].click()\n\n        self.browser.wait_until_not('[data-test-id=\"loading-indicator\"]')\n\n    def find_comment_form(self):\n        self.browser.wait_until_test_id(\"note-input-form\")\n        return self.browser.find_element(\n            by=By.CSS_SELECTOR, value='[data-test-id=\"note-input-form\"]'\n        )\n\n    def has_comment(self, text):\n        element = self.browser.element('[data-test-id=\"activity-note-body\"]')\n        return text in element.text\n\n    def wait_until_loaded(self):\n        self.browser.wait_until_not('[data-test-id=\"loading-indicator\"]')\n        self.browser.wait_until_not('[data-test-id=\"event-errors-loading\"]')\n        self.browser.wait_until_test_id(\"linked-issues\")\n        self.browser.wait_until_test_id(\"loaded-device-name\")\n        if self.browser.element_exists(\"#grouping-info\"):\n            self.browser.wait_until_test_id(\"loaded-grouping-info\")\n        self.browser.wait_until_not('[data-test-id=\"loading-placeholder\"]')\n\n    def mark_reviewed(self):\n        self.browser.click('[aria-label=\"More Actions\"]')\n        self.browser.wait_until('[data-test-id=\"mark-review\"]')\n        self.browser.click('[data-test-id=\"mark-review\"]')\n        self.browser.click('[aria-label=\"More Actions\"]')\n        self.browser.wait_until('[data-test-id=\"mark-review\"][aria-disabled=\"true\"]')\n", "path": "fixtures/page_objects/issue_details.py"}]}