Skip to content

Commit 2961491

Browse files
committed
feat: add support for pinning and archiving in the offline db
1 parent c7b82fc commit 2961491

File tree

5 files changed

+14
-1
lines changed

5 files changed

+14
-1
lines changed

package/src/store/SqliteClient.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import type { PreparedBatchQueries, PreparedQueries, Scalar, Table } from './typ
2828
* This way usage @op-engineering/op-sqlite package is scoped to a single class/file.
2929
*/
3030
export class SqliteClient {
31-
static dbVersion = 8;
31+
static dbVersion = 9;
3232

3333
static dbName = DB_NAME;
3434
static dbLocation = DB_LOCATION;

package/src/store/apis/getChannels.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ export const getChannels = async ({
3838
return channels.map((c) => ({
3939
...mapStorableToChannel(c),
4040
members: cidVsMembers[c.cid] || [],
41+
membership: (cidVsMembers[c.cid] || []).find((member) => member.user_id === currentUserId),
4142
messages: cidVsMessages[c.cid] || [],
4243
pinned_messages: [],
4344
read: cidVsReads[c.cid] || [],

package/src/store/mappers/mapMemberToStorable.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ export const mapMemberToStorable = ({
1212
member: ChannelMemberResponse;
1313
}): TableRow<'members'> => {
1414
const {
15+
archived_at,
1516
banned,
1617
channel_role,
1718
created_at,
@@ -23,9 +24,11 @@ export const mapMemberToStorable = ({
2324
shadow_banned,
2425
updated_at,
2526
user_id,
27+
pinned_at,
2628
} = member;
2729

2830
return {
31+
archivedAt: mapDateTimeToStorable(archived_at),
2932
banned,
3033
channelRole: channel_role,
3134
cid,
@@ -34,6 +37,7 @@ export const mapMemberToStorable = ({
3437
invited,
3538
inviteRejectedAt: invite_rejected_at,
3639
isModerator: is_moderator,
40+
pinnedAt: mapDateTimeToStorable(pinned_at),
3741
role,
3842
shadowBanned: shadow_banned,
3943
updatedAt: mapDateTimeToStorable(updated_at),

package/src/store/mappers/mapStorableToMember.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,15 @@ export const mapStorableToMember = (
88
memberRow: TableRowJoinedUser<'members'>,
99
): ChannelMemberResponse => {
1010
const {
11+
archivedAt,
1112
banned,
1213
channelRole,
1314
createdAt,
1415
inviteAcceptedAt,
1516
invited,
1617
inviteRejectedAt,
1718
isModerator,
19+
pinnedAt,
1820
role,
1921
shadowBanned,
2022
updatedAt,
@@ -23,13 +25,15 @@ export const mapStorableToMember = (
2325
} = memberRow;
2426

2527
return {
28+
archived_at: archivedAt,
2629
banned,
2730
channel_role: channelRole,
2831
created_at: createdAt,
2932
invite_accepted_at: inviteAcceptedAt,
3033
invite_rejected_at: inviteRejectedAt,
3134
invited,
3235
is_moderator: isModerator,
36+
pinned_at: pinnedAt,
3337
role,
3438
shadow_banned: shadowBanned,
3539
updated_at: updatedAt,

package/src/store/schema.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ export const tables: Tables = {
6464
},
6565
members: {
6666
columns: {
67+
archivedAt: 'TEXT',
6768
banned: 'BOOLEAN DEFAULT FALSE',
6869
channelRole: 'TEXT',
6970
cid: 'TEXT NOT NULL',
@@ -72,6 +73,7 @@ export const tables: Tables = {
7273
invited: 'BOOLEAN',
7374
inviteRejectedAt: 'TEXT',
7475
isModerator: 'BOOLEAN',
76+
pinnedAt: 'TEXT',
7577
role: 'TEXT',
7678
shadowBanned: 'BOOLEAN DEFAULT FALSE',
7779
updatedAt: 'TEXT',
@@ -270,6 +272,7 @@ export type Schema = {
270272
updatedAt?: string;
271273
};
272274
members: {
275+
archivedAt?: string;
273276
cid: string;
274277
banned?: boolean;
275278
channelRole?: Role;
@@ -282,6 +285,7 @@ export type Schema = {
282285
shadowBanned?: boolean;
283286
updatedAt?: string;
284287
userId?: string;
288+
pinnedAt?: string;
285289
};
286290
messages: {
287291
attachments: string;

0 commit comments

Comments
 (0)