Web: explain the two web-check paths in a slide-in drawer - #15
Merged
Merged
Conversation
A user ran the originality web-check on a thesis and wasn't sure what the "nothing is sent until you click" message meant, or what the automatic option would do differently. That decision — manual vs automatic search — is exactly where someone checking unpublished writing needs to understand where their text goes, and the UI didn't say. - New reusable InfoDrawer component: a controlled, right-side slide-in panel with a backdrop, close on button / backdrop / Esc. It renders a Blazor overlay, never a native dialog, so it can't block anything. Meant to be reused wherever a decision needs a plain-language aside. - A "What happens to your text?" trigger in the web-check hint opens it, explaining both paths side by side: manual search (most private — text goes only to the search engine, only on click) and automatic search (browser → SignsOfAI server → Brave, as a batch). It adapts to whether the operator has enabled auto search, and says plainly that both find the same thing, so the only difference is how much text leaves the device. - The guidance names the real case: prefer the manual path for someone else's unpublished writing unless they're fine with it. Theme-aware (light and dark verified), honours prefers-reduced-motion, 0 warnings, 75/75 tests still green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A real user (a student, on their thesis) ran the originality web-check and wasn't sure what "nothing is sent until you click" meant, or what turning on the automatic option would change. That manual-vs-automatic choice is precisely where someone checking unpublished writing needs to know where their text goes — and the UI didn't explain it.
This adds an in-app explanation at that exact moment, as a reusable pattern.
New
InfoDrawercomponentA controlled, right-side slide-in panel: backdrop, close on button / backdrop / Esc, entrance animation that respects
prefers-reduced-motion. It renders a Blazor overlay, never a native browser dialog, so it can't block the page. Built generic (Title,Icon, child content) so we can drop the same "explain this decision" aside anywhere else later.The web-check explainer
A subtle "What happens to your text?" link in the web-check hint opens the drawer, which lays out both paths honestly:
It names the case that prompted this: prefer the manual path for someone else's unpublished writing unless they're fine with it.
Verified
Light and dark themes (screenshots taken against a local build), backdrop-close works, the layout holds when auto search is off (the real state of the current server).
dotnet build0 warnings, 75/75 tests pass.Separately, from the same conversation: the deployed server is live with perplexity and paraphrase ready but
webSearchReady: false. Turning on automatic search is an operator step (a Brave API key inBRAVE_API_KEY), not part of this PR.