Skip to content

Commit

Permalink
fix: Profile user fields
Browse files Browse the repository at this point in the history
  • Loading branch information
lee-to committed Feb 11, 2025
1 parent c61c69e commit ca15a93
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 29 deletions.
20 changes: 19 additions & 1 deletion src/Laravel/src/Components/Layout/Profile.php
Original file line number Diff line number Diff line change
Expand Up @@ -86,17 +86,35 @@ protected function viewData(): array

private function getDefaultName(): string
{
$userField = moonshineConfig()->getUserField('name');

if($userField === false) {
return '';
}

return $this->user?->{moonshineConfig()->getUserField('name')} ?? '';
}

private function getDefaultUsername(): string
{
$userField = moonshineConfig()->getUserField('username', 'email');

if($userField === false) {
return '';
}

return $this->user?->{moonshineConfig()->getUserField('username', 'email')} ?? '';
}

private function getDefaultAvatar(): string
{
$avatar = $this->user?->{moonshineConfig()->getUserField('avatar')};
$userField = moonshineConfig()->getUserField('avatar');

if($userField === false) {
return '';
}

$avatar = $this->user?->{$userField};

return $avatar
? Storage::disk(moonshineConfig()->getDisk())->url($avatar)
Expand Down
67 changes: 39 additions & 28 deletions src/Laravel/src/Pages/ProfilePage.php
Original file line number Diff line number Diff line change
Expand Up @@ -42,37 +42,48 @@ public function getTitle(): string

protected function fields(): iterable
{
$userFields = array_filter([
ID::make()->sortable(),

moonshineConfig()->getUserField('name')
? Text::make(__('moonshine::ui.resource.name'), moonshineConfig()->getUserField('name'))
->required()
: null,

moonshineConfig()->getUserField('username')
? Text::make(__('moonshine::ui.login.username'), moonshineConfig()->getUserField('username'))
->required()
: null,

moonshineConfig()->getUserField('avatar')
? Image::make(__('moonshine::ui.resource.avatar'), moonshineConfig()->getUserField('avatar'))
->disk(moonshineConfig()->getDisk())
->options(moonshineConfig()->getDiskOptions())
->dir('moonshine_users')
->removable()
->allowedExtensions(['jpg', 'png', 'jpeg', 'gif'])
: null,
]);

$userPasswordsFields = moonshineConfig()->getUserField('password') ? [
Heading::make(__('moonshine::ui.resource.change_password')),

Password::make(__('moonshine::ui.resource.password'), moonshineConfig()->getUserField('password'))
->customAttributes(['autocomplete' => 'new-password'])
->eye(),

PasswordRepeat::make(__('moonshine::ui.resource.repeat_password'), 'password_repeat')
->customAttributes(['autocomplete' => 'confirm-password'])
->eye(),
] : [];

return [
Box::make([
Tabs::make([
Tab::make(__('moonshine::ui.resource.main_information'), [
ID::make()->sortable(),

Text::make(__('moonshine::ui.resource.name'), moonshineConfig()->getUserField('name'))
->required(),

Text::make(__('moonshine::ui.login.username'), moonshineConfig()->getUserField('username'))
->required(),

Image::make(__('moonshine::ui.resource.avatar'), moonshineConfig()->getUserField('avatar'))
->disk(moonshineConfig()->getDisk())
->options(moonshineConfig()->getDiskOptions())
->dir('moonshine_users')
->removable()
->allowedExtensions(['jpg', 'png', 'jpeg', 'gif']),
]),

Tab::make(__('moonshine::ui.resource.password'), [
Heading::make(__('moonshine::ui.resource.change_password')),

Password::make(__('moonshine::ui.resource.password'), moonshineConfig()->getUserField('password'))
->customAttributes(['autocomplete' => 'new-password'])
->eye(),

PasswordRepeat::make(__('moonshine::ui.resource.repeat_password'), 'password_repeat')
->customAttributes(['autocomplete' => 'confirm-password'])
->eye(),
]),
Tab::make(__('moonshine::ui.resource.main_information'), $userFields),
Tab::make(__('moonshine::ui.resource.password'), $userPasswordsFields)->canSee(
fn() => $userPasswordsFields !== [],
),
]),
]),
];
Expand Down

0 comments on commit ca15a93

Please sign in to comment.