diff --git a/.github/workflows/triage_issue.yml b/.github/workflows/triage_issue.yml
index b625a98b..ecc69f59 100644
--- a/.github/workflows/triage_issue.yml
+++ b/.github/workflows/triage_issue.yml
@@ -15,22 +15,27 @@ jobs:
gh api graphql -f query='
query {
organization(login: "revoltchat"){
- projectNext(number: 3) {
+ projectV2(number: 3) {
id
fields(first:20) {
nodes {
- id
- name
- settings
+ ... on ProjectV2SingleSelectField {
+ id
+ name
+ options {
+ id
+ name
+ }
+ }
}
}
}
}
}' > project_data.json
- echo 'PROJECT_ID='$(jq '.data.organization.projectNext.id' project_data.json) >> $GITHUB_ENV
- echo 'STATUS_FIELD_ID='$(jq '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") | .id' project_data.json) >> $GITHUB_ENV
- echo 'TODO_OPTION_ID='$(jq '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") |.settings | fromjson.options[] | select(.name=="Todo") |.id' project_data.json) >> $GITHUB_ENV
+ echo 'PROJECT_ID='$(jq '.data.organization.projectV2.id' project_data.json) >> $GITHUB_ENV
+ echo 'STATUS_FIELD_ID='$(jq '.data.organization.projectV2.fields.nodes[] | select(.name== "Status") | .id' project_data.json) >> $GITHUB_ENV
+ echo 'TODO_OPTION_ID='$(jq '.data.organization.projectV2.fields.nodes[] | select(.name== "Status") | .options[] | select(.name=="Todo") |.id' project_data.json) >> $GITHUB_ENV
- name: Add issue to project
env:
@@ -39,11 +44,11 @@ jobs:
run: |
item_id="$( gh api graphql -f query='
mutation($project:ID!, $issue:ID!) {
- addProjectNextItem(input: {projectId: $project, contentId: $issue}) {
- projectNextItem {
+ addProjectV2ItemById(input: {projectId: $project, contentId: $issue}) {
+ item {
id
}
}
- }' -f project=$PROJECT_ID -f issue=$ISSUE_ID --jq '.data.addProjectNextItem.projectNextItem.id')"
-
+ }' -f project=$PROJECT_ID -f issue=$ISSUE_ID --jq '.data.addProjectV2ItemById.item.id')"
+
echo 'ITEM_ID='$item_id >> $GITHUB_ENV
diff --git a/.github/workflows/triage_pr.yml b/.github/workflows/triage_pr.yml
index df07fe88..de5a9421 100644
--- a/.github/workflows/triage_pr.yml
+++ b/.github/workflows/triage_pr.yml
@@ -15,22 +15,27 @@ jobs:
gh api graphql -f query='
query {
organization(login: "revoltchat"){
- projectNext(number: 3) {
+ projectV2(number: 3) {
id
fields(first:20) {
nodes {
- id
- name
- settings
+ ... on ProjectV2SingleSelectField {
+ id
+ name
+ options {
+ id
+ name
+ }
+ }
}
}
}
}
}' > project_data.json
- echo 'PROJECT_ID='$(jq '.data.organization.projectNext.id' project_data.json) >> $GITHUB_ENV
- echo 'STATUS_FIELD_ID='$(jq '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") | .id' project_data.json) >> $GITHUB_ENV
- echo 'INCOMING_OPTION_ID='$(jq '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") |.settings | fromjson.options[] | select(.name=="Incoming PRs") |.id' project_data.json) >> $GITHUB_ENV
+ echo 'PROJECT_ID='$(jq '.data.organization.projectV2.id' project_data.json) >> $GITHUB_ENV
+ echo 'STATUS_FIELD_ID='$(jq '.data.organization.projectV2.fields.nodes[] | select(.name== "Status") | .id' project_data.json) >> $GITHUB_ENV
+ echo 'INCOMING_OPTION_ID='$(jq '.data.organization.projectV2.fields.nodes[] | select(.name== "Status") | .options[] | select(.name=="Incoming PRs") |.id' project_data.json) >> $GITHUB_ENV
- name: Add PR to project
env:
@@ -39,13 +44,13 @@ jobs:
run: |
item_id="$( gh api graphql -f query='
mutation($project:ID!, $pr:ID!) {
- addProjectNextItem(input: {projectId: $project, contentId: $pr}) {
- projectNextItem {
+ addProjectV2ItemById(input: {projectId: $project, contentId: $pr}) {
+ item {
id
}
}
- }' -f project=$PROJECT_ID -f pr=$PR_ID --jq '.data.addProjectNextItem.projectNextItem.id')"
-
+ }' -f project=$PROJECT_ID -f pr=$PR_ID --jq '.data.addProjectV2ItemById.item.id')"
+
echo 'ITEM_ID='$item_id >> $GITHUB_ENV
- name: Set fields
@@ -59,14 +64,16 @@ jobs:
$status_field: ID!
$status_value: String!
) {
- set_status: updateProjectNextItemField(input: {
+ set_status: updateProjectV2ItemFieldValue(input: {
projectId: $project
itemId: $item
fieldId: $status_field
- value: $status_value
+ value: {
+ singleSelectOptionId: $status_value
+ }
}) {
- projectNextItem {
+ projectV2Item {
id
- }
+ }
}
}' -f project=$PROJECT_ID -f item=$ITEM_ID -f status_field=$STATUS_FIELD_ID -f status_value=${{ env.INCOMING_OPTION_ID }} --silent
diff --git a/external/lang b/external/lang
index f95ec6dc..4eec9dd0 160000
--- a/external/lang
+++ b/external/lang
@@ -1 +1 @@
-Subproject commit f95ec6dc8200adba7925425d4cf2ae0c16f049c3
+Subproject commit 4eec9dd02afa6a7f9b68c336282d4819b9c30790
diff --git a/external/revolt.js b/external/revolt.js
index ab064f41..e1a98853 160000
--- a/external/revolt.js
+++ b/external/revolt.js
@@ -1 +1 @@
-Subproject commit ab064f41a4154acee7c1751ea5b59d9ee4345a0b
+Subproject commit e1a98853b49adb78698af175e8b7c971ef501d5b
diff --git a/src/components/common/messaging/embed/Embed.tsx b/src/components/common/messaging/embed/Embed.tsx
index 3d04c44f..ce63c1aa 100644
--- a/src/components/common/messaging/embed/Embed.tsx
+++ b/src/components/common/messaging/embed/Embed.tsx
@@ -67,7 +67,8 @@ export default function Embed({ embed }: Props) {
break;
}
case "Twitch":
- case "Lightspeed": {
+ case "Lightspeed":
+ case "Streamable": {
mw = 1280;
mh = 720;
break;
diff --git a/src/components/common/messaging/embed/EmbedMedia.tsx b/src/components/common/messaging/embed/EmbedMedia.tsx
index 53723d27..fca1cedc 100644
--- a/src/components/common/messaging/embed/EmbedMedia.tsx
+++ b/src/components/common/messaging/embed/EmbedMedia.tsx
@@ -92,6 +92,16 @@ export default function EmbedMedia({ embed, width, height }: Props) {
/>
);
}
+ case "Streamable": {
+ return (
+
+ );
+ }
default: {
if (embed.video) {
const url = embed.video.url;
diff --git a/src/mobx/stores/Draft.ts b/src/mobx/stores/Draft.ts
index de81ea8a..7c5fcaaa 100644
--- a/src/mobx/stores/Draft.ts
+++ b/src/mobx/stores/Draft.ts
@@ -59,10 +59,12 @@ export default class Draft implements Store, Persistent {
* @param channel Channel ID
*/
@computed has(channel: string) {
- return (
- this.drafts.has(channel) &&
- this.drafts.get(channel)!.content!.length > 0
- );
+ if (!this.drafts.has(channel)) return false;
+ // fetch the draft object
+ const potentialDraft = this.drafts.get(channel)?.content;
+ // if it doesn't have any content return false
+ if (!potentialDraft) return false;
+ return potentialDraft.length > 0;
}
/**
diff --git a/src/pages/settings/server/Categories.tsx b/src/pages/settings/server/Categories.tsx
index f9f4bc43..4da61297 100644
--- a/src/pages/settings/server/Categories.tsx
+++ b/src/pages/settings/server/Categories.tsx
@@ -340,11 +340,13 @@ function ListElement({
const save = useCallback(() => {
setEditing(undefined);
- setTitle!(editing!);
+ if (editing !== "") {
+ setTitle!(editing!);
+ }
}, [editing, setTitle]);
useEffect(() => {
- if (!editing) return;
+ if (editing === undefined) return;
function onClick(ev: MouseEvent) {
if ((ev.target as HTMLElement)?.id !== category.id) {
@@ -368,7 +370,7 @@ function ListElement({
diff --git a/yarn.lock b/yarn.lock
index 4afa15be..ca79c65f 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -8016,14 +8016,14 @@ __metadata:
languageName: node
linkType: hard
-"revolt-api@npm:0.5.5-4":
- version: 0.5.5-4
- resolution: "revolt-api@npm:0.5.5-4"
+"revolt-api@npm:0.5.7":
+ version: 0.5.7
+ resolution: "revolt-api@npm:0.5.7"
dependencies:
"@insertish/oapi": 0.1.18
axios: ^0.26.1
lodash.defaultsdeep: ^4.6.1
- checksum: dfb374d58f1b8b5a6de2e7fa05e386b3df3ffb85a450a6894f23c6b9760af8bff0d198d8352063c33084f0dbc6ff84a234300efb0c62c7b27f709887402787f1
+ checksum: ce5d24f1f71c039789b71c33cce12a9bc1ee4709e2c37f88ac95caff193096ff4f5e90fd48ba0ed6f6bbb71d080cd410f8ba8a3998da8bd8083766a016b18306
languageName: node
linkType: hard
@@ -8040,7 +8040,7 @@ __metadata:
lodash.isequal: ^4.5.0
long: ^5.2.0
mobx: ^6.3.2
- revolt-api: 0.5.5-4
+ revolt-api: 0.5.7
ulid: ^2.3.0
ws: ^8.2.2
languageName: node