1
0
mirror of https://github.com/flarum/core.git synced 2025-08-24 00:53:27 +02:00

Compare commits

..

1 Commits

Author SHA1 Message Date
Sami Mazouz
f854d55352 fix: include LabelValue in the default bundle (sync) 2025-08-22 11:51:53 +01:00
5 changed files with 4 additions and 72 deletions

View File

@@ -30,9 +30,6 @@ export default class Dialog extends Model {
unreadCount() {
return Model.attribute<number>('unreadCount').call(this);
}
lastMessageId() {
return Model.attribute<number>('lastMessageId').call(this);
}
lastReadMessageId() {
return Model.attribute<number>('lastReadMessageId').call(this);
}

View File

@@ -59,56 +59,6 @@ const MessageControls = {
return message.delete().then(() => {
context.attrs.state.remove(message);
const dialog = message.dialog();
if (dialog) {
const noMessagesLeft =
context.attrs.state.getAllItems().filter((m) => {
const mDialog = m.dialog();
if (!mDialog) return false;
return mDialog?.id() === dialog!.id();
}).length === 0;
if (noMessagesLeft) {
app.dialogs.remove(dialog!);
m.route.set(app.route('messages'));
}
if (parseInt(message.id()!) === dialog.lastMessageId()) {
const lastMessage = context.attrs.state
.getAllItems()
.filter((m) => {
const mDialog = m.dialog();
if (!mDialog) return false;
return mDialog.id() === dialog?.id();
})
.sort((a, b) => parseInt(a.id()!) - parseInt(b.id()!))
.pop();
if (lastMessage) {
dialog!.pushData({
relationships: {
...dialog!.data.relationships,
lastMessage: {
data: {
type: 'dialog-messages',
id: lastMessage.id()!,
},
},
},
});
dialog.pushAttributes({
lastMessageId: parseInt(lastMessage.id()!),
});
}
}
}
m.redraw();
});
},

View File

@@ -68,6 +68,9 @@ class DialogResource extends Resource\AbstractDatabaseResource
$connection = UserDialogState::query()->getConnection();
$grammar = UserDialogState::query()->getGrammar();
$table = $grammar->wrapTable('dialogs');
$column = $grammar->wrap('last_message_id');
UserDialogState::query()
->where('dialog_user.user_id', $context->getActor()->id)
->update([
@@ -118,7 +121,6 @@ class DialogResource extends Resource\AbstractDatabaseResource
->get(function (Dialog $dialog) {
return $dialog->state->last_read_at;
}),
Schema\Integer::make('lastMessageId'),
Schema\Integer::make('lastReadMessageId')
->visible(fn (Dialog $dialog) => $dialog->state !== null)
->get(function (Dialog $dialog) {

View File

@@ -70,24 +70,6 @@ class DialogMessage extends AbstractModel implements Formattable
->toSql()
.')');
});
static::deleted(function (self $message) {
if ($message->dialog) {
if ($message->dialog->messages()->count() === 0) {
$message->dialog->delete();
} elseif ($message->dialog->first_message_id === $message->id) {
$message->dialog->setFirstMessage(
$message->dialog->messages()->oldest('id')->first()
);
$message->dialog->save();
} elseif ($message->dialog->last_message_id === $message->id) {
$message->dialog->setLastMessage(
$message->dialog->messages()->latest('id')->first()
);
$message->dialog->save();
}
}
});
}
public function dialog(): BelongsTo

View File

@@ -63,6 +63,7 @@ import './components/FieldSet';
import './components/Select';
import './components/Navigation';
import './components/Alert';
import './components/LabelValue';
import './components/Link';
import './components/LinkButton';
import './components/Checkbox';