TTP -> MTP, A lot of other stuff #21

Merged
alois merged 81 commits from dev into main 2026-07-21 11:57:33 +03:00
4 changed files with 38 additions and 19 deletions
Showing only changes of commit e3e90d4779 - Show all commits

(feat): update workflows to use nixos runners
Some checks failed
/ build-mobile (push) Failing after 5s
/ build-web (push) Failing after 5s
/ release (push) Has been cancelled
/ build-desktop (linux) (push) Has been cancelled

(wip): add mini hover context menu
(qol): update todo
Alois 2026-06-28 18:00:21 +02:00

View file

@ -7,7 +7,7 @@ on:
jobs: jobs:
build-web: build-web:
runs-on: docker runs-on: nixos
steps: steps:
- name: Check out repo - name: Check out repo
uses: https://data.forgejo.org/actions/checkout@v4 uses: https://data.forgejo.org/actions/checkout@v4
@ -15,9 +15,6 @@ jobs:
- name: Install Packages - name: Install Packages
run: apt-get update && apt-get install -y sudo curl jq fakeroot dpkg rpm run: apt-get update && apt-get install -y sudo curl jq fakeroot dpkg rpm
- name: Install Nix
uses: https://github.com/cachix/install-nix-action@v30
- name: Install Bun - name: Install Bun
uses: oven-sh/setup-bun@v2 uses: oven-sh/setup-bun@v2
@ -40,7 +37,7 @@ jobs:
run: rsync -a --delete apps/web/dist/ /var/lib/www/tensamin-web-dev/ run: rsync -a --delete apps/web/dist/ /var/lib/www/tensamin-web-dev/
build-mobile: build-mobile:
runs-on: docker runs-on: nixos
steps: steps:
- name: Check out repo - name: Check out repo
uses: https://data.forgejo.org/actions/checkout@v4 uses: https://data.forgejo.org/actions/checkout@v4
@ -48,9 +45,6 @@ jobs:
- name: Install Packages - name: Install Packages
run: apt-get update && apt-get install -y sudo curl jq fakeroot dpkg rpm run: apt-get update && apt-get install -y sudo curl jq fakeroot dpkg rpm
- name: Install Nix
uses: https://github.com/cachix/install-nix-action@v30
- name: Install Bun - name: Install Bun
uses: oven-sh/setup-bun@v2 uses: oven-sh/setup-bun@v2

View file

@ -8,7 +8,7 @@ on:
jobs: jobs:
build-web: build-web:
runs-on: docker runs-on: nixos
steps: steps:
- name: Check out repo - name: Check out repo
uses: https://data.forgejo.org/actions/checkout@v4 uses: https://data.forgejo.org/actions/checkout@v4
@ -16,9 +16,6 @@ jobs:
- name: Install Packages - name: Install Packages
run: apt-get update && apt-get install -y sudo curl jq fakeroot dpkg rpm run: apt-get update && apt-get install -y sudo curl jq fakeroot dpkg rpm
- name: Install Nix
uses: https://github.com/cachix/install-nix-action@v30
- name: Install Bun - name: Install Bun
uses: oven-sh/setup-bun@v2 uses: oven-sh/setup-bun@v2
@ -41,7 +38,7 @@ jobs:
run: rsync -a --delete apps/web/dist/ /var/lib/www/tensamin-web-prod/ run: rsync -a --delete apps/web/dist/ /var/lib/www/tensamin-web-prod/
build-mobile: build-mobile:
runs-on: docker runs-on: nixos
steps: steps:
- name: Check out repo - name: Check out repo
uses: https://data.forgejo.org/actions/checkout@v4 uses: https://data.forgejo.org/actions/checkout@v4
@ -49,9 +46,6 @@ jobs:
- name: Install Packages - name: Install Packages
run: apt-get update && apt-get install -y sudo curl jq fakeroot dpkg rpm run: apt-get update && apt-get install -y sudo curl jq fakeroot dpkg rpm
- name: Install Nix
uses: https://github.com/cachix/install-nix-action@v30
- name: Install Bun - name: Install Bun
uses: oven-sh/setup-bun@v2 uses: oven-sh/setup-bun@v2

View file

@ -7,3 +7,4 @@
- Implement context menu features - Implement context menu features
- Add quality selection - Add quality selection
- Good preview page - Good preview page
- Settings page

View file

@ -1,7 +1,15 @@
import * as React from "react"; import * as React from "react";
import type { RawMessage } from "../values"; import type { RawMessage } from "../values";
import Text from "@tensamin/markdown/text"; import Text from "@tensamin/markdown/text";
import { AlertTriangle, Check, Ellipse, RefreshCw } from "lucide-react"; import {
AlertTriangle,
Check,
Ellipse,
Forward,
Laugh,
RefreshCw,
Reply,
} from "lucide-react";
import { useCallback, useEffect, useState } from "react"; import { useCallback, useEffect, useState } from "react";
import type { User } from "@tensamin/user/context"; import type { User } from "@tensamin/user/context";
@ -9,7 +17,10 @@ import {
Avatar, Avatar,
AvatarFallback, AvatarFallback,
AvatarImage, AvatarImage,
Button,
Card,
cn, cn,
Separator,
Tooltip, Tooltip,
TooltipContent, TooltipContent,
TooltipTrigger, TooltipTrigger,
@ -125,7 +136,7 @@ function MessageComponent({
> >
<div <div
className={cn( className={cn(
"group hover:bg-muted/50 select-text! justify-start flex gap-1 items-center w-full px-2 whitespace-pre-wrap break-all", "group hover:bg-muted/50 select-text! relative justify-start flex gap-1 items-center w-full px-2 whitespace-pre-wrap break-all",
{ {
"bg-(--destructive)/15 text-destructive-foreground": "bg-(--destructive)/15 text-destructive-foreground":
actuallyFailed, actuallyFailed,
@ -157,7 +168,26 @@ function MessageComponent({
<TooltipTrigger render={<AlertTriangle size={17} />} /> <TooltipTrigger render={<AlertTriangle size={17} />} />
</Tooltip> </Tooltip>
)} )}
<div className="flex flex-col"> <div className="flex flex-col group">
<Card className="absolute right-4 -top-3 opacity-0 group-hover:opacity-100 flex flex-row justify-end gap-0! z-10 p-0! shadow-lg rounded-lg!">
{[0, 1, 2].map((item) => (
<Button key={item} variant="ghost" className="h-8 w-8">
{item === 0 && "👍"}
{item === 1 && "🔥"}
{item === 2 && "✅"}
</Button>
))}
<Separator orientation="vertical" className="my-1" />
<Button variant="ghost" className="h-8 w-8">
<Laugh />
</Button>
<Button variant="ghost" className="h-8 w-8">
<Reply />
</Button>
<Button variant="ghost" className="h-8 w-8">
<Forward />
</Button>
</Card>
{!grouped && ( {!grouped && (
<div className="flex items-center gap-1"> <div className="flex items-center gap-1">
<p className="font-medium">{user.display}</p> <p className="font-medium">{user.display}</p>