Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
37 changes: 36 additions & 1 deletion apps/desktop/src/components/finder/views/contact-view.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import { RiCornerDownLeftLine } from "@remixicon/react";
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
import { Building2, CircleMinus, FileText, Pencil, Plus, SearchIcon, TrashIcon, User } from "lucide-react";
import { Building2, CircleMinus, FileText, Pencil, Plus, SearchIcon, TrashIcon, User, UserPlus } from "lucide-react";
import React, { useEffect, useRef, useState } from "react";

import { commands as analyticsCommands } from "@hypr/plugin-analytics";
import { commands as dbCommands } from "@hypr/plugin-db";
import { type Human, type Organization } from "@hypr/plugin-db";
import { commands as windowsCommands } from "@hypr/plugin-windows";
Expand All @@ -12,6 +13,7 @@ import { Popover, PopoverContent, PopoverTrigger } from "@hypr/ui/components/ui/
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@hypr/ui/components/ui/select";
import { cn } from "@hypr/ui/lib/utils";
import { getInitials } from "@hypr/utils";
import { openUrl } from "@tauri-apps/plugin-opener";
import { LinkProps } from "node_modules/@tanstack/react-router/dist/esm/link";

interface ContactViewProps {
Expand Down Expand Up @@ -372,6 +374,39 @@ export function ContactView({ userId, initialPersonId, initialOrgId }: ContactVi
{selectedPersonData.organization_id && (
<OrganizationInfo organizationId={selectedPersonData.organization_id} />
)}
{!selectedPersonData.is_user && selectedPersonData.email && (
<button
onClick={() => {
analyticsCommands.event({
event: "recommend_button_clicked",
distinct_id: userId,
});

const subject = encodeURIComponent("I'd like to recommend Hyprnote to you");
const body = encodeURIComponent(`Hi ${selectedPersonData.full_name || "there"},

I wanted to share Hyprnote with you - it's an AI notetaker for private meetings.

Hyprnote is super cool because you can transcribe your meetings and summarize them with AI, fully locally (even works offline).

It's great to use if your company policy doesn't allow cloud-based AI notetakers like Granola or Otter.

You can check it out at: https://www.hyprnote.com

Let me know what you think!

Best regards`);

const mailtoUrl =
`mailto:${selectedPersonData.email}?subject=${subject}&body=${body}`;
openUrl(mailtoUrl);
}}
className="mt-2 inline-flex items-center gap-1 text-xs text-blue-600 hover:text-blue-700 hover:underline transition-colors cursor-pointer"
>
<UserPlus className="h-3 w-3" />
Recommend Hyprnote to {selectedPersonData.full_name}
</button>
)}
</div>
<div className="flex gap-2">
<button
Expand Down
23 changes: 23 additions & 0 deletions apps/desktop/src/components/settings/views/billing.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,29 @@ function FreeSectionCheckout() {

return (
<div>
<div className="mb-6 p-4 rounded-lg bg-primary/5 border border-primary/20">
<h3 className="text-sm font-semibold text-foreground mb-3 flex items-center">
What you get with Pro:
</h3>
<ul className="space-y-2 text-sm text-muted-foreground">
<li className="flex items-center">
<div className="w-1.5 h-1.5 rounded-full bg-primary mr-2.5"></div>
Exclusive STT models
</li>
<li className="flex items-center">
<div className="w-1.5 h-1.5 rounded-full bg-primary mr-2.5"></div>
Unlimited Templates & AI Chat
</li>
<li className="flex items-center">
<div className="w-1.5 h-1.5 rounded-full bg-primary mr-2.5"></div>
HyprCloud (managed LLM endpoint)
</li>
<li className="flex items-center">
<div className="w-1.5 h-1.5 rounded-full bg-primary mr-2.5"></div>
Priority support through dedicated Discord channel
</li>
</ul>
</div>
<div className="space-y-6">
<div className="space-y-1">
<Label htmlFor="email" className="text-sm font-medium text-foreground">
Expand Down
Loading