Skip to content

Conversation

@ComputelessComputer
Copy link
Collaborator

@ComputelessComputer ComputelessComputer commented Nov 29, 2025

Decrease mobile mock window height in editor section

Summary

Reduces the height of the mock window in the mobile view of the EditorSection on the ai-notetaking page from 380px to 256px (h-64).

Review & Testing Checklist for Human

  • Verify the reduced height (256px) still displays the AnimatedMarkdownDemo content properly without awkward cutoff on mobile
  • Confirm this is the desired height - may need adjustment based on visual preference
  • Test on actual mobile viewport to ensure the demo animation is still visible and looks good

Notes

The user also mentioned markdown syntax transformation (e.g., # + space becoming a header). The existing AnimatedMarkdownDemo component already implements this behavior - it transforms markdown syntax after the trigger character + space is typed. No code changes were needed for that functionality.

Requested by: john@hyprnote.com (@ComputelessComputer)
Devin session: https://app.devin.ai/sessions/dee8a705bca848abadabb7cfd839bf65

@devin-ai-integration
Copy link
Contributor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR that start with 'DevinAI' or '@devin'.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 29, 2025

📝 Walkthrough

Walkthrough

Reworked the AnimatedMarkdownDemo interaction and mobile editor layout in ai-notetaking.tsx: added per-line placeholder workflow and detection for markdown triggers, adjusted rendering paths for placeholder/transformed states, and reduced the mobile inner editor height from 380px to 200px.

Changes

Cohort / File(s) Summary
Animated markdown placeholder & transformation logic
apps/web/src/routes/_view/product/ai-notetaking.tsx
Added showPlaceholder state and per-line placeholder fields; implemented isMarkdownTrigger detection for heading ("# ") and bullet ("- ") triggers; show transient placeholder then transform to final state with delay; extended transformed rendering branches to handle placeholder-visible, heading, bullet, and bold states; reset placeholder with other state advances.
Mobile editor layout adjustment
apps/web/src/routes/_view/product/ai-notetaking.tsx
Changed inner editor/mobile preview height from 380px to 200px, reducing vertical space for AnimatedMarkdownDemo in mobile view.
Placeholder UI rendering & caret animation
apps/web/src/routes/_view/product/ai-notetaking.tsx
Added live placeholder rendering for headings and bullets (including pulsing caret) plus fallback placeholder for other line types; integrated placeholder state into current-line rendering flow.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

  • Review placeholder/timing logic and edge cases around rapid input or skip/advance actions.
  • Verify all rendering branches (placeholder, transformed heading, bullet, bold) for visual and accessibility correctness.
  • Confirm height change doesn't break surrounding responsive layout or cause overflow issues.

Possibly related PRs

  • polished ai notetaking page #1826: Modifies the same ai-notetaking.tsx UI file (updates notetaking editor animation/placeholder behavior), likely touches overlapping code paths.

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: reducing mobile editor height from 380px to 200px in the AnimatedMarkdownDemo component.
Description check ✅ Passed The description is related to the changeset and explains the purpose of reducing the mobile mock window height, though it mentions 256px while the implementation shows 200px.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch devin/1764384753-markdown-transform-mobile-height

Comment @coderabbitai help to get the list of available commands and usage tips.

@netlify
Copy link

netlify bot commented Nov 29, 2025

Deploy Preview for hyprnote-storybook ready!

Name Link
🔨 Latest commit e31119f
🔍 Latest deploy log https://app.netlify.com/projects/hyprnote-storybook/deploys/692aa7dac46c420008b7a1fe
😎 Deploy Preview https://deploy-preview-1986--hyprnote-storybook.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify
Copy link

netlify bot commented Nov 29, 2025

Deploy Preview for hyprnote ready!

Name Link
🔨 Latest commit e31119f
🔍 Latest deploy log https://app.netlify.com/projects/hyprnote/deploys/692aa7da8201a50008f53caa
😎 Deploy Preview https://deploy-preview-1986--hyprnote.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@argos-ci
Copy link

argos-ci bot commented Nov 29, 2025

The latest updates on your projects. Learn more about Argos notifications ↗︎

Build Status Details Updated (UTC)
web (Inspect) ⚠️ Changes detected (Review) 2 changed Nov 29, 2025, 8:02 AM

devin-ai-integration bot and others added 8 commits November 29, 2025 16:48
Co-Authored-By: john@hyprnote.com <john@hyprnote.com>
Introduce staged placeholder and transformation states to make the typing
animation mimic how tools like Notion render headings and lists. Added
showPlaceholder and transforming state flags, expanded lines to include
placeholder text, and adjusted the typing logic to briefly display a
placeholder (e.g., "Heading 1" or "List") after typing the trigger
sequence ("# " or "- ") before animating into the transformed
rendered element. Also updated rendering to show a pulsing cursor during
placeholder and to animate transformed headings with motion.
Prevent the cursor from jumping to the end by rendering the typing cursor inline with the typing text and placeholder. The change moves the pulse cursor character into the same span as typingText and places the placeholder in a following inline span so the cursor stays at the current typing position instead of jumping to the end.
Adjust the spacing between the blinking cursor and the placeholder text to make the caret appear closer to the placeholder. The change replaces the margin-left utility from ml-2 to ml-0.5 to tighten the gap and improve visual alignment of the cursor and placeholder in the AI note-taking component.
Make the placeholder text and blinking cursor visible immediately after typing a marker (e.g. "# " or "- ") and render them in the correct visual style for headings and bullets. This change replaces generic placeholders like "Heading 1"/"List" with "Enter header"/"Enter list item", ensures the cursor blinks before the placeholder, and uses larger heading font sizes and proper list markup so the placeholder matches the final rendered element.
Prevent transformed list items and other placeholder-rendered lines from re-sliding by removing motion wrappers for heading (and adding comments for bullet and bold states). This stops the slide-in animation when the placeholder is shown so the UI doesn't animate the item again after transformation; the diff removes the motion.h1 wrapper and adds clarifying comments for bullet and bold transformed states.
Remove placeholder-related animation state and transitional opacity so placeholders vanish instantly instead of animating. The change eliminates the "transforming" state and related class toggles, and ensures showPlaceholder is reset immediately when placeholders are dismissed. This prevents unwanted fade/opacity animations when placeholders go away and simplifies the placeholder/typing flow.
@ComputelessComputer ComputelessComputer force-pushed the devin/1764384753-markdown-transform-mobile-height branch from d809020 to e31119f Compare November 29, 2025 07:59
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
apps/web/src/routes/_view/product/ai-notetaking.tsx (1)

385-411: Consider extracting lines array outside the component.

The lines array is constant and doesn't depend on props or state. Defining it inside the component causes it to be recreated on every render. For a minor performance optimization, move it outside AnimatedMarkdownDemo.

+const MARKDOWN_LINES = [
+  {
+    text: "# Meeting Notes",
+    type: "heading" as const,
+    placeholder: "Enter header",
+  },
+  {
+    text: "- Product roadmap review",
+    type: "bullet" as const,
+    placeholder: "Enter list item",
+  },
+  {
+    text: "- Q4 marketing strategy",
+    type: "bullet" as const,
+    placeholder: "Enter list item",
+  },
+  {
+    text: "- Budget allocation",
+    type: "bullet" as const,
+    placeholder: "Enter list item",
+  },
+  {
+    text: "**Decision:** Launch campaign by end of month",
+    type: "bold" as const,
+    placeholder: "",
+  },
+];
+
 function AnimatedMarkdownDemo({ isMobile = false }: { isMobile?: boolean }) {
   // ... state declarations ...
-  const lines = [
-    // ...
-  ];
+  const lines = MARKDOWN_LINES;
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d809020 and e31119f.

📒 Files selected for processing (1)
  • apps/web/src/routes/_view/product/ai-notetaking.tsx (9 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

**/*.{ts,tsx}: Avoid creating a bunch of types/interfaces if they are not shared. Especially for function props, just inline them instead.
Never do manual state management for form/mutation. Use useForm (from tanstack-form) and useQuery/useMutation (from tanstack-query) instead for 99% of cases. Avoid patterns like setError.
If there are many classNames with conditional logic, use cn (import from @hypr/utils). It is similar to clsx. Always pass an array and split by logical grouping.
Use motion/react instead of framer-motion.

Files:

  • apps/web/src/routes/_view/product/ai-notetaking.tsx
🧬 Code graph analysis (1)
apps/web/src/routes/_view/product/ai-notetaking.tsx (1)
packages/utils/src/cn.ts (1)
  • cn (20-22)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: Redirect rules - hyprnote
  • GitHub Check: Header rules - hyprnote
  • GitHub Check: Pages changed - hyprnote
  • GitHub Check: ci (macos, macos-14)
  • GitHub Check: fmt
🔇 Additional comments (4)
apps/web/src/routes/_view/product/ai-notetaking.tsx (4)

284-286: Height value differs from PR description.

The PR description specifies reducing the height to 256px (h-64), but this implementation uses h-[200px] (200px). Please confirm which value is correct—the arbitrary h-[200px] or the Tailwind utility h-64 (256px).


435-457: Placeholder and transformation logic is well-structured.

The markdown trigger detection correctly identifies # for headings and - for bullets, showing a brief placeholder before transformation. The nested timeout pattern appropriately delays the transformation after showing the placeholder.


545-588: Placeholder rendering is comprehensive.

The placeholder rendering correctly handles heading, bullet, and fallback cases with appropriate styling and a pulsing caret. The conditional branching is clear and follows the established pattern for other line types.


590-658: Transformed state rendering is consistent.

The rendering branches for heading, bullet, and bold transformed states are correctly implemented with appropriate text slicing and styling. The default typing state fallback at lines 649-657 ensures all cases are handled.

@ComputelessComputer ComputelessComputer merged commit dcf6479 into main Nov 29, 2025
13 of 14 checks passed
@ComputelessComputer ComputelessComputer deleted the devin/1764384753-markdown-transform-mobile-height branch November 29, 2025 08:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants