Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
21ab1b0
Merge pull request #765 from plebbit/master
plebe1us Sep 27, 2025
b53736f
docs(release): add Windows SmartScreen guidance to release notes
plebe1us Sep 27, 2025
6b5e002
feat(header,account-bar): remove unnecessary effects and derive value…
plebe1us Sep 27, 2025
70bc289
perf(post-page,subplebbit,submit): remove effects that sync derived b…
plebe1us Sep 27, 2025
afb4be7
fix eslint
plebe1us Sep 27, 2025
610ff8e
feat(challenges): add iframe modal for external authentication challe…
plebe1us Sep 30, 2025
06d1bfd
Update .gitignore
plebe1us Sep 30, 2025
e881abf
feat(challenge): add dark mode to iframe, improve security
plebe1us Sep 30, 2025
4e5f134
remove unnecessary effect
plebe1us Sep 30, 2025
bcea4eb
fix(challenge): scope iframe messaging to trusted origin
plebe1us Sep 30, 2025
41967c5
refactor(challenge): consolidate iframe and regular challenge components
plebe1us Oct 1, 2025
911e2f5
remove inline styling
plebe1us Oct 1, 2025
e06ac3f
refactor(challenge-modal): sync iframe parent data and theme updates
plebe1us Oct 1, 2025
8dd91b4
Update challenge-modal.tsx
plebe1us Oct 1, 2025
f23c16c
refactor(challenge-modal): normalize hook usage across challenge modes
plebe1us Oct 2, 2025
888bfbb
fix spacing
plebe1us Oct 2, 2025
759e138
fix type error
plebe1us Oct 2, 2025
acf0130
fix(challenge-modal): tighten iframe handling, fix styling
plebe1us Oct 3, 2025
5f14d03
use more user-friendly wording
plebe1us Oct 3, 2025
7603ba9
fix(challenge): adjust padding and improve error log
plebe1us Oct 4, 2025
f768a80
fix(media-utils): ignore blacklisted thumbnails
plebe1us Oct 4, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -164,4 +164,6 @@ yarn-error.log*
.yoyo/

# cursor
.cursor
.cursor

.playwright-mcp
3 changes: 1 addition & 2 deletions scripts/release-body.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,7 @@ const linuxX64 = linux.find(isX64);
const macArm = mac.find(isArm);
const macX64 = mac.find(isX64);

const winSetupArm = win.find(f => has(f, 'setup') && isArm(f));
const winSetupX64 = win.find(f => has(f, 'setup') && isX64(f));
const winPortableArm = win.find(f => has(f, 'portable') && isArm(f));
const winPortableX64 = win.find(f => has(f, 'portable') && isX64(f));

// small section builder without push()
Expand All @@ -85,6 +83,7 @@ const macSection = section('macOS', [
const winSection = section('Windows', [
winSetupX64 && `- Installer (x64): [Download EXE](${linkTo(winSetupX64)})`,
winPortableX64 && `- Portable (x64): [Download EXE](${linkTo(winPortableX64)})`,
(win.length > 0) && `- If Windows shows "Windows protected your PC" (SmartScreen), click "More info" then "Run anyway". To permanently allow, right-click the .exe → Properties → check "Unblock", or run in PowerShell: \`Unblock-File -Path .\\path\\to\\file.exe\`.`,
]);

const linuxSection = section('Linux', [
Expand Down
10 changes: 3 additions & 7 deletions src/components/account-bar/account-bar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -54,12 +54,8 @@ const AccountBar = () => {
[searchBarRef, accountSelectButtonRef, accountDropdownRef, accountdropdownItemsRef],
);

const [isFocused, setIsFocused] = useState(false);
useEffect(() => {
if (searchVisible) {
setIsFocused(true);
}
}, [searchVisible]);
// Derive focus intent from visibility to avoid effect; SearchBar will handle actual focusing
const shouldFocusSearch = searchVisible;

useEffect(() => {
document.addEventListener('mousedown', handleClickOutside);
Expand Down Expand Up @@ -120,7 +116,7 @@ const AccountBar = () => {
</span>
{searchVisible && (
<div className={styles.searchBar} ref={searchBarRef}>
<SearchBar isFocused={isFocused} />
<SearchBar isFocused={shouldFocusSearch} />
</div>
)}
</span>
Expand Down
56 changes: 54 additions & 2 deletions src/components/challenge-modal/challenge-modal.module.css
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@
}

.container {
width: 400px;
width: min(90vw, 560px);
max-height: 90vh;
color: var(--text);
font-size: large;
background-color: var(--background);
Expand All @@ -17,6 +18,7 @@
position: fixed;
transform: translate(-50%, -50%);
font-size: large;
overflow-y: auto;
}

.subTitle {
Expand Down Expand Up @@ -55,11 +57,13 @@
justify-content: flex-end;
align-items: center;
margin-top: 20px;
position: relative;
padding-bottom: 12px;
}

.buttons {
position: absolute;
left: 20px;
left: 0;
}

.challengeFooter button {
Expand Down Expand Up @@ -87,5 +91,53 @@
.container {
max-width: 400px;
width: 85vw;
max-height: 85vh;
}

.challengeFooter {
flex-direction: column;
align-items: stretch;
}

.buttons {
position: static;
margin-top: 10px;
}
}

/* Iframe challenge styles */
.iframeChallengeWarning {
font-size: 14px;
text-align: center;
padding: 20px 0;
}

.iframeWrapper {
height: 70vh;
margin-top: 20px;
max-height: 600px;
}

.iframe {
width: 100%;
height: 100%;
border: 1px solid var(--border-text);
background-color: var(--background, transparent);
}

.iframeFooter {
flex-direction: column;
align-items: flex-start;
padding-bottom: 0;
gap: 10px;
}

.iframeInstruction {
font-size: 12px;
color: var(--text-secondary);
margin-bottom: 10px;
}

.iframeCloseButton {
align-self: flex-start;
}
Loading