-
Noteshelf
+
Folders
- Your workspace for notes, ideas, and reflections alongside your
- meetings.
+ Organize your meetings and notes into folders for easy access and
+ better structure.
-
-
+
- Personal notes and reflections
+ Group related meetings together
-
-
+
- Link notes to meetings
+ Organize by project, client, or topic
-
-
+
- Full-text search across all notes
+ Quick navigation and filtering
-
-
+
+
);
}
+const ADVANCED_SEARCH_AUTO_ADVANCE_DURATION = 5000;
+
+const advancedSearchImages = [
+ {
+ id: 1,
+ url: "/api/images/hyprnote/mini-apps/search-default.jpg",
+ title: "Suggestions",
+ description:
+ "Get instant search result suggestions based on recent activities",
+ },
+ {
+ id: 2,
+ url: "/api/images/hyprnote/mini-apps/search-semantic.jpg",
+ title: "Semantic search",
+ description: "Find relevant info even without exact keywords",
+ },
+ {
+ id: 3,
+ url: "/api/images/hyprnote/mini-apps/search-filter.jpg",
+ title: "Filters",
+ description: "Filter out result types easily",
+ },
+];
+
function AdvancedSearchSection() {
const [selectedImage, setSelectedImage] = useState(1);
+ const [progress, setProgress] = useState(0);
+ const [isPaused, setIsPaused] = useState(false);
+ const progressRef = useRef(0);
- const images = [
- {
- id: 1,
- url: "/api/images/hyprnote/search-1.jpg",
- title: "Suggestions",
- description:
- "Get instant search result suggestions based on recent activities",
- },
- {
- id: 2,
- url: "/api/images/hyprnote/search-2.jpg",
- title: "Semantic search",
- description: "Find relevant info even without exact keywords",
- },
- {
- id: 3,
- url: "/api/images/hyprnote/search-3.jpg",
- title: "Filters",
- description: "Filter out result types easily",
- },
- ];
+ useEffect(() => {
+ if (isPaused) return;
+
+ const startTime =
+ Date.now() -
+ (progressRef.current / 100) * ADVANCED_SEARCH_AUTO_ADVANCE_DURATION;
+ let animationId: number;
+
+ const animate = () => {
+ const elapsed = Date.now() - startTime;
+ const newProgress = Math.min(
+ (elapsed / ADVANCED_SEARCH_AUTO_ADVANCE_DURATION) * 100,
+ 100,
+ );
+ setProgress(newProgress);
+ progressRef.current = newProgress;
+
+ if (newProgress >= 100) {
+ const currentIndex = advancedSearchImages.findIndex(
+ (img) => img.id === selectedImage,
+ );
+ const nextIndex = (currentIndex + 1) % advancedSearchImages.length;
+ setSelectedImage(advancedSearchImages[nextIndex].id);
+ setProgress(0);
+ progressRef.current = 0;
+ } else {
+ animationId = requestAnimationFrame(animate);
+ }
+ };
+
+ animationId = requestAnimationFrame(animate);
+ return () => cancelAnimationFrame(animationId);
+ }, [selectedImage, isPaused]);
+
+ const handleTabClick = (imageId: number) => {
+ setSelectedImage(imageId);
+ setProgress(0);
+ progressRef.current = 0;
+ };
return (
@@ -643,17 +535,29 @@ function AdvancedSearchSection() {
@@ -693,8 +601,8 @@ function CTASection() {
Get the complete experience
- Download Hyprnote to start using contacts and calendar integration
- today. Daily notes and noteshelf coming soon
+ Download Hyprnote to start using contacts, calendar, and folders
+ today. Daily notes coming soon