summaryrefslogtreecommitdiff
path: root/gui/src/types/ui.ts
blob: b80b4ca5747fec7266b53e631a62dd2b9a6d7828 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import type { NostrMetadata, NostrPost } from "./nostrill";
import type { Poast } from "./trill";
import type { Tweet } from "./twatter";
import type { Ship } from "./urbit";
export type Result<T> = { ok: T } | { error: string };
export type AsyncRes<T> = Promise<Result<T>>;

export type Timestamp = number;
export type UrbitTime = string;

export interface ComposerData {
  type: "quote" | "reply";
  post: SPID;
}
export type SPID = TrillPID | NostrPID | TwatterPID | RumorsPID;

export interface TrillPID {
  trill: Poast;
}
export interface NostrPID {
  nostr: NostrMetadata;
}
export interface TwatterPID {
  twatter: Tweet;
}
export interface RumorsPID {
  rumors: Poast;
}
export interface Guanxi {
  trill: Relationship;
  pals: Relationship;
}
export type Relationship = "mutual" | "incoming" | "outgoing" | "none";

// should make a sortug type codebase

export type BucketCreds = {
  opts: {
    bucket: string;
    origin: string; // this is the endpoint
    region: string;
  };
  creds: {
    credentials: {
      accessKey: string;
      secretKey: string;
    };
  };
};

export type DateStruct = { year: number; month: number; day: number };
export type ChatQuoteParams = { p: Ship; nest: string; id: string };
export type ReactGrouping = Array<{ react: string; ships: Ship[] }>;