בניתי מחדש את תפריט ה-Slash של Notion ב-70 שורות של JavaScript

Notion מרגיש כמו קסם. מקלידים לוכסן (slash) ותפריט מופיע. בוחרים באפשרות אחת והטקסט משתנה.

בניתי מחדש את הפיצ'ר הזה באמצעות 70 שורות של vanilla JavaScript. הקסם הוא לוגיקה פשוטה.

היום התשיעי בסדרת DesignFromZero שלי מתמקד בממשקי משתמש (UI) מפורסמים. אני בונה מחדש את הכלים האלו מאפס כדי להבין אותם.

הלוגיקה נשענת על שלושה חלקים:

הקוד משתמש בטריק פשוט לניווט. שימוש באופרטור modulo מאפשר להשתמש במקשי החיצים כדי לנוע ברשימה. זה גורם לבחירה "להתגלגל" מתחתית הרשימה חזרה לראשיתה.

כשלוחצים על Enter, הקוד מבצע שתי משימות:

  1. הוא מעדכן את סוג הבלוק בנתונים. לאחר מכן, CSS מטפל בשינוי הוויזואלי.
  2. הוא מנקה את הלוכסן ואת טקסט הפקודה.

פיצ'רים מורכבים מבוססים לעיתים קרובות על יסודות פשוטים. תפריט slash הוא בסך הכל נתונים בתוספת בדיקת קידומת (prefix) והחלפת סוג (type swap).

נסו את הדמו החי כאן: https://dev48v.infy.uk/design/day9-notion-slash.html

קראו את הניתוח המלא כאן: https://dev.to/dev48v/i-rebuilt-notions-slash-menu-in-70-lines-of-javascript-2n9i