• Mohamed Aziz Mejri's avatar
    Add search query highlighting to version panel (#3117) · 2f73912b
    Mohamed Aziz Mejri 提交于
    ## Summary
    This PR adds visual highlighting of search query matches in the
    VersionPane component, making it easier for users to identify which
    versions match their search criteria.
    
    ## Key Changes
    - **New `HighlightMatch` component**: Created a reusable component that
    highlights matching text segments with a yellow background (with dark
    mode support). The matching is case-insensitive.
    - **Version number highlighting**: Applied highlighting to version
    numbers in the version list header
    - **Version hash highlighting**: Applied highlighting to the short
    commit hash (OID) displayed next to version numbers
    - **Message highlighting**: Applied highlighting to version messages,
    including those with reverted version information
    
    ## Implementation Details
    - The `HighlightMatch` component performs case-insensitive substring
    matching and wraps matched text in a `<mark>` element with Tailwind
    classes (`bg-yellow-200 dark:bg-yellow-800 rounded-sm`)
    - Search query is trimmed before being passed to the highlighting
    function to avoid unnecessary whitespace
    - The highlighting is applied consistently across all searchable text
    fields in the version pane (version numbers, hashes, and messages)
    - The implementation preserves existing message transformation logic for
    "Reverted" messages while adding highlighting on top
    <!-- devin-review-badge-begin -->
    
    ---
    
    <a href="https://app.devin.ai/review/dyad-sh/dyad/pull/3117"
    target="_blank">
      <picture>
    <source media="(prefers-color-scheme: dark)"
    srcset="https://static.devin.ai/assets/gh-open-in-devin-review-dark.svg?v=1">
    <img
    src="https://static.devin.ai/assets/gh-open-in-devin-review-light.svg?v=1"
    alt="Open with Devin">
      </picture>
    </a>
    <!-- devin-review-badge-end -->
    2f73912b
名称
最后提交
最后更新
..
AgentConsentBanner.tsx 正在载入提交数据...
AttachmentsList.tsx 正在载入提交数据...
AuxiliaryActionsMenu.tsx 正在载入提交数据...
ChatError.tsx 正在载入提交数据...
ChatErrorBox.tsx 正在载入提交数据...
ChatHeader.tsx 正在载入提交数据...
ChatImageGenerationStrip.tsx 正在载入提交数据...
ChatInput.tsx 正在载入提交数据...
ChatMessage.tsx 正在载入提交数据...
ChatTabs.tsx 正在载入提交数据...
CodeHighlight.tsx 正在载入提交数据...
ContextLimitBanner.tsx 正在载入提交数据...
DeleteChatDialog.tsx 正在载入提交数据...
DragDropOverlay.tsx 正在载入提交数据...
DyadAddDependency.tsx 正在载入提交数据...
DyadAddIntegration.tsx 正在载入提交数据...
DyadAttachment.tsx 正在载入提交数据...
DyadCardPrimitives.tsx 正在载入提交数据...
DyadCodeSearch.tsx 正在载入提交数据...
DyadCodeSearchResult.tsx 正在载入提交数据...
DyadCodebaseContext.tsx 正在载入提交数据...
DyadCompaction.tsx 正在载入提交数据...
DyadCopy.tsx 正在载入提交数据...
DyadDatabaseSchema.tsx 正在载入提交数据...
DyadDelete.tsx 正在载入提交数据...
DyadEdit.tsx 正在载入提交数据...
DyadExecuteSql.tsx 正在载入提交数据...
DyadExitPlan.tsx 正在载入提交数据...
DyadGrep.tsx 正在载入提交数据...
DyadImageGeneration.tsx 正在载入提交数据...
DyadListFiles.tsx 正在载入提交数据...
DyadLogs.tsx 正在载入提交数据...
DyadMarkdownParser.tsx 正在载入提交数据...
DyadMcpToolCall.tsx 正在载入提交数据...
DyadMcpToolResult.tsx 正在载入提交数据...
DyadOutput.tsx 正在载入提交数据...
DyadProblemSummary.tsx 正在载入提交数据...
DyadQuestionnaire.tsx 正在载入提交数据...
DyadRead.tsx 正在载入提交数据...
DyadRename.tsx 正在载入提交数据...
DyadSearchReplace.tsx 正在载入提交数据...
DyadStatus.tsx 正在载入提交数据...
DyadStepLimit.tsx 正在载入提交数据...
DyadSupabaseProjectInfo.tsx 正在载入提交数据...
DyadSupabaseTableSchema.tsx 正在载入提交数据...
DyadThink.tsx 正在载入提交数据...
DyadTokenSavings.tsx 正在载入提交数据...
DyadWebCrawl.tsx 正在载入提交数据...
DyadWebFetch.tsx 正在载入提交数据...
DyadWebSearch.tsx 正在载入提交数据...
DyadWebSearchResult.tsx 正在载入提交数据...
DyadWrite.tsx 正在载入提交数据...
DyadWritePlan.tsx 正在载入提交数据...
FileAttachmentDropdown.tsx 正在载入提交数据...
FileAttachmentTypeDialog.tsx 正在载入提交数据...
FixAllErrorsButton.tsx 正在载入提交数据...
FreeAgentQuotaBanner.tsx 正在载入提交数据...
HistoryNavigation.tsx 正在载入提交数据...
HomeChatInput.tsx 正在载入提交数据...
ImageLightbox.tsx 正在载入提交数据...
LexicalChatInput.tsx 正在载入提交数据...
MessagesList.tsx 正在载入提交数据...
NotificationBanner.tsx 正在载入提交数据...
PromoMessage.tsx 正在载入提交数据...
QuestionnaireInput.tsx 正在载入提交数据...
QueuedMessagesList.tsx 正在载入提交数据...
RenameChatDialog.tsx 正在载入提交数据...
SelectedComponentDisplay.tsx 正在载入提交数据...
SkippableBanner.tsx 正在载入提交数据...
StreamingLoadingAnimation.tsx 正在载入提交数据...
SummarizeInNewChatButton.tsx 正在载入提交数据...
TodoList.tsx 正在载入提交数据...
TokenBar.tsx 正在载入提交数据...
UncommittedFilesBanner.tsx 正在载入提交数据...
VersionPane.tsx 正在载入提交数据...
monaco.ts 正在载入提交数据...
stateTypes.ts 正在载入提交数据...
types.d.ts 正在载入提交数据...