wip
This commit is contained in:
@@ -6,6 +6,7 @@ import { MakerRpm } from '@electron-forge/maker-rpm';
|
|||||||
import { VitePlugin } from '@electron-forge/plugin-vite';
|
import { VitePlugin } from '@electron-forge/plugin-vite';
|
||||||
import { FusesPlugin } from '@electron-forge/plugin-fuses';
|
import { FusesPlugin } from '@electron-forge/plugin-fuses';
|
||||||
import { FuseV1Options, FuseVersion } from '@electron/fuses';
|
import { FuseV1Options, FuseVersion } from '@electron/fuses';
|
||||||
|
import type { SignToolOptions } from '@electron/windows-sign';
|
||||||
|
|
||||||
// Windows code signing via Azure Trusted Signing. Dormant unless the workflow
|
// Windows code signing via Azure Trusted Signing. Dormant unless the workflow
|
||||||
// provisions the dlib + metadata file and exports these env vars, so local
|
// provisions the dlib + metadata file and exports these env vars, so local
|
||||||
@@ -16,7 +17,7 @@ import { FuseV1Options, FuseVersion } from '@electron/fuses';
|
|||||||
const windowsSign = process.env.AZURE_METADATA_JSON_PATH ? {
|
const windowsSign = process.env.AZURE_METADATA_JSON_PATH ? {
|
||||||
debug: true,
|
debug: true,
|
||||||
signToolPath: process.env.SIGNTOOL_PATH,
|
signToolPath: process.env.SIGNTOOL_PATH,
|
||||||
hashes: ['sha256' as any],
|
hashes: ['sha256'] as SignToolOptions['hashes'],
|
||||||
timestampServer: 'http://timestamp.acs.microsoft.com',
|
timestampServer: 'http://timestamp.acs.microsoft.com',
|
||||||
signWithParams: [
|
signWithParams: [
|
||||||
'/v',
|
'/v',
|
||||||
|
|||||||
@@ -25,12 +25,12 @@ export type ListNetworksResponse = z.infer<typeof ListNetworksResponseSchema>;
|
|||||||
|
|
||||||
// --- Network request/response types ---
|
// --- Network request/response types ---
|
||||||
|
|
||||||
const CreateNetworkRequestSchema = z.object({
|
export const CreateNetworkRequestSchema = z.object({
|
||||||
name: z.string(),
|
name: z.string(),
|
||||||
});
|
});
|
||||||
export type CreateNetworkRequest = z.infer<typeof CreateNetworkRequestSchema>;
|
export type CreateNetworkRequest = z.infer<typeof CreateNetworkRequestSchema>;
|
||||||
|
|
||||||
const AddMembersRequestSchema = z.object({
|
export const AddMembersRequestSchema = z.object({
|
||||||
email_addresses: z.array(z.string().email()),
|
email_addresses: z.array(z.string().email()),
|
||||||
});
|
});
|
||||||
export type AddMembersRequest = z.infer<typeof AddMembersRequestSchema>;
|
export type AddMembersRequest = z.infer<typeof AddMembersRequestSchema>;
|
||||||
@@ -52,7 +52,7 @@ export type RevokeInvitationRequest = { email: string };
|
|||||||
|
|
||||||
// --- Depot types ---
|
// --- Depot types ---
|
||||||
|
|
||||||
const PrepareUploadRequestSchema = z.object({
|
export const PrepareUploadRequestSchema = z.object({
|
||||||
network_id: z.string(),
|
network_id: z.string(),
|
||||||
name: z.string(),
|
name: z.string(),
|
||||||
content_type: z.string(),
|
content_type: z.string(),
|
||||||
@@ -251,12 +251,12 @@ export type GetLivekitTokenResponse = z.infer<typeof GetLivekitTokenResponseSche
|
|||||||
|
|
||||||
// --- Auth types ---
|
// --- Auth types ---
|
||||||
|
|
||||||
const RequestCodeRequestSchema = z.object({
|
export const RequestCodeRequestSchema = z.object({
|
||||||
email: z.string().email(),
|
email: z.string().email(),
|
||||||
});
|
});
|
||||||
export type RequestCodeRequest = z.infer<typeof RequestCodeRequestSchema>;
|
export type RequestCodeRequest = z.infer<typeof RequestCodeRequestSchema>;
|
||||||
|
|
||||||
const SignInRequestSchema = z.object({
|
export const SignInRequestSchema = z.object({
|
||||||
email: z.string().email(),
|
email: z.string().email(),
|
||||||
code: z.string(),
|
code: z.string(),
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ import { Copy, ExternalLink, Globe } from "lucide-react";
|
|||||||
import type { LinkMetadata } from "@/lib/link-metadata";
|
import type { LinkMetadata } from "@/lib/link-metadata";
|
||||||
import { Skeleton } from "@/components/ui/skeleton";
|
import { Skeleton } from "@/components/ui/skeleton";
|
||||||
import { Button } from "@/components/ui/button";
|
import { Button } from "@/components/ui/button";
|
||||||
import { cn } from "@/lib/utils";
|
|
||||||
import { platform } from "@/lib/platform";
|
import { platform } from "@/lib/platform";
|
||||||
|
|
||||||
interface LinkPreviewCardProps {
|
interface LinkPreviewCardProps {
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ export function ConfigureStreamStep({
|
|||||||
{!everyone && members.length > 0 && (
|
{!everyone && members.length > 0 && (
|
||||||
<ScrollArea className="max-h-48">
|
<ScrollArea className="max-h-48">
|
||||||
<div className="space-y-0.5 p-1">
|
<div className="space-y-0.5 p-1">
|
||||||
{members.map((member, index) => {
|
{members.map((member) => {
|
||||||
const isSelected = selectedIds.has(member.id);
|
const isSelected = selectedIds.has(member.id);
|
||||||
const initials = member.email_prefix
|
const initials = member.email_prefix
|
||||||
.slice(0, 2)
|
.slice(0, 2)
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import { Particle } from "@/api/types";
|
import { Particle } from "@/api/types";
|
||||||
import { useLiveParticleChildren } from "@/hooks/use-particle";
|
|
||||||
import { parseParticlePath, type ParticlePath } from "@/lib/particle-path";
|
import { parseParticlePath, type ParticlePath } from "@/lib/particle-path";
|
||||||
import { ComposeOverlay } from "@/features/compose/compose-overlay";
|
import { ComposeOverlay } from "@/features/compose/compose-overlay";
|
||||||
|
|
||||||
@@ -9,7 +8,6 @@ interface FolderViewProps {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function FolderView({ path, folderParticle }: FolderViewProps) {
|
export function FolderView({ path, folderParticle }: FolderViewProps) {
|
||||||
const { children, error, isLoading } = useLiveParticleChildren(path);
|
|
||||||
const { networkId } = parseParticlePath(path);
|
const { networkId } = parseParticlePath(path);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -13,11 +13,10 @@ import {
|
|||||||
Trash2,
|
Trash2,
|
||||||
type LucideIcon,
|
type LucideIcon,
|
||||||
} from "lucide-react";
|
} from "lucide-react";
|
||||||
import { cn } from "@/lib/utils";
|
import { cn, getInitials } from "@/lib/utils";
|
||||||
import { useLiveLatestChild } from "@/hooks/use-particle";
|
import { useLiveLatestChild } from "@/hooks/use-particle";
|
||||||
import { useAuthStore } from "@/stores/auth-store";
|
import { useAuthStore } from "@/stores/auth-store";
|
||||||
import { particlePath } from "@/lib/particle-path";
|
import { particlePath } from "@/lib/particle-path";
|
||||||
import { getInitials } from "@/lib/utils";
|
|
||||||
import { resolveHumanDisplay } from "@/lib/humans";
|
import { resolveHumanDisplay } from "@/lib/humans";
|
||||||
import { RelativeTimestamp } from "@/components/relative-timestamp";
|
import { RelativeTimestamp } from "@/components/relative-timestamp";
|
||||||
import { Avatar, AvatarFallback } from "@/components/ui/avatar";
|
import { Avatar, AvatarFallback } from "@/components/ui/avatar";
|
||||||
|
|||||||
@@ -2,10 +2,9 @@ import { useState } from "react";
|
|||||||
import { Plus, Type, X } from "lucide-react";
|
import { Plus, Type, X } from "lucide-react";
|
||||||
import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip";
|
import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip";
|
||||||
import { Avatar, AvatarFallback } from "@/components/ui/avatar";
|
import { Avatar, AvatarFallback } from "@/components/ui/avatar";
|
||||||
import { REACTION_EMOJIS, type Reactions } from "@/api/types";
|
import { REACTION_EMOJIS, type Reactions, type Human } from "@/api/types";
|
||||||
import { cn } from "@/lib/utils";
|
import { cn } from "@/lib/utils";
|
||||||
import { resolveHumanDisplay } from "@/lib/humans";
|
import { resolveHumanDisplay } from "@/lib/humans";
|
||||||
import type { Human } from "@/api/types";
|
|
||||||
|
|
||||||
interface ReactionBarProps {
|
interface ReactionBarProps {
|
||||||
reactions: Reactions;
|
reactions: Reactions;
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ import {
|
|||||||
} from "react";
|
} from "react";
|
||||||
import { useChannel } from "@/hooks/use-channel";
|
import { useChannel } from "@/hooks/use-channel";
|
||||||
import { useAuthStore } from "@/stores/auth-store";
|
import { useAuthStore } from "@/stores/auth-store";
|
||||||
import type { ChannelMessage } from "@/lib/pusher-client";
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
// Types
|
// Types
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { useEffect, useState } from "react";
|
import { useEffect, useState } from "react";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import { ChevronRight, LogOut, User, Info, Shield, Mail, Mic, LifeBuoy, FileText, Volume2 } from "lucide-react";
|
import { ChevronRight, LogOut, Info, Shield, Mail, Mic, LifeBuoy, FileText, Volume2, ArrowLeft } from "lucide-react";
|
||||||
import { Avatar, AvatarFallback } from "@/components/ui/avatar";
|
import { Avatar, AvatarFallback } from "@/components/ui/avatar";
|
||||||
import { Separator } from "@/components/ui/separator";
|
import { Separator } from "@/components/ui/separator";
|
||||||
import { Switch } from "@/components/ui/switch";
|
import { Switch } from "@/components/ui/switch";
|
||||||
@@ -15,7 +15,6 @@ import { apiClient } from "@/api/client";
|
|||||||
import { logError, toUserMessage } from "@/lib/errors";
|
import { logError, toUserMessage } from "@/lib/errors";
|
||||||
import { toast } from "sonner";
|
import { toast } from "sonner";
|
||||||
import { PRIVACY_URL, SUPPORT_EMAIL, TERMS_URL } from "@/lib/constants";
|
import { PRIVACY_URL, SUPPORT_EMAIL, TERMS_URL } from "@/lib/constants";
|
||||||
import { ArrowLeft } from "lucide-react";
|
|
||||||
import { platform } from "@/lib/platform";
|
import { platform } from "@/lib/platform";
|
||||||
|
|
||||||
interface SettingsRowProps {
|
interface SettingsRowProps {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { useEffect, useState, useCallback, useRef } from "react";
|
import { useEffect, useState, useCallback } from "react";
|
||||||
import { usePusherClient } from "@/lib/pusher-provider";
|
import { usePusherClient } from "@/lib/pusher-provider";
|
||||||
import type { ChannelMessage } from "@/lib/pusher-client";
|
import type { ChannelMessage } from "@/lib/pusher-client";
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import type { MediaParticleHandle } from "@/features/particles/media-particle-vi
|
|||||||
import { useSuspendPlayback } from "@/hooks/use-suspend-playback";
|
import { useSuspendPlayback } from "@/hooks/use-suspend-playback";
|
||||||
import { selectIsPaused, usePlaybackPauseStore } from "@/stores/playback-pause-store";
|
import { selectIsPaused, usePlaybackPauseStore } from "@/stores/playback-pause-store";
|
||||||
import { isTypingTarget } from "@/lib/keyboard";
|
import { isTypingTarget } from "@/lib/keyboard";
|
||||||
import { set } from "zod";
|
|
||||||
|
|
||||||
const SPACE_TAP_THRESHOLD_MS = 250;
|
const SPACE_TAP_THRESHOLD_MS = 250;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user