|
|
@ -4,21 +4,7 @@ |
|
|
|
|
|
|
|
|
|
|
|
<h3>Online Users</h3> |
|
|
|
<h3>Online Users</h3> |
|
|
|
|
|
|
|
|
|
|
|
<p> |
|
|
|
<ShowUser @ref="_showUser" Users="_users" Callback="CallbackAction"/> |
|
|
|
Users: <b>@_users.Count</b> |
|
|
|
|
|
|
|
</p> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<br /> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<ul class="list-group"> |
|
|
|
|
|
|
|
@foreach (UserData user in _users) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
<li @key="user" class="list-group-item"> |
|
|
|
|
|
|
|
<button class="btn btn-link" type="button" @onclick="(() => KickUser(user))">[Kick]</button> |
|
|
|
|
|
|
|
<label>@user.Name</label> |
|
|
|
|
|
|
|
</li> |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
</ul> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<br /> |
|
|
|
<br /> |
|
|
|
|
|
|
|
|
|
|
@ -30,49 +16,33 @@ |
|
|
|
<div class="col"> |
|
|
|
<div class="col"> |
|
|
|
@* 속성(Attribute)도 binding 가능 *@ |
|
|
|
@* 속성(Attribute)도 binding 가능 *@ |
|
|
|
@* conditional atribute 속성 자체에도 조건 붙일 수 있음 *@ |
|
|
|
@* conditional atribute 속성 자체에도 조건 붙일 수 있음 *@ |
|
|
|
<button class=@_btnClass type="button" @onclick="AddUser" disabled="@(_users.Count >= 5)">Add a user</button> |
|
|
|
<button class="btn btn-primary" type="button" @onclick="AddUser" disabled="@(_users.Count >= 5)">Add a user</button> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
@code { |
|
|
|
@code { |
|
|
|
private List<UserData> _users = new List<UserData>(); |
|
|
|
private List<UserData> _users = new List<UserData>(); |
|
|
|
|
|
|
|
private ShowUser _showUser; |
|
|
|
|
|
|
|
|
|
|
|
private string _inputName; |
|
|
|
private string _inputName; |
|
|
|
private string _btnClass = "btn btn-primary"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
protected override void OnInitialized() |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
_users.Add(new UserData() { Name = "Simpson" }); |
|
|
|
|
|
|
|
_users.Add(new UserData() { Name = "Richard" }); |
|
|
|
|
|
|
|
_users.Add(new UserData() { Name = "Tylor" }); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RefreshButton(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void AddUser() |
|
|
|
private void AddUser() |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (string.IsNullOrEmpty(_inputName)) |
|
|
|
if (string.IsNullOrEmpty(_inputName)) |
|
|
|
return; |
|
|
|
return; |
|
|
|
|
|
|
|
|
|
|
|
_users.Add(new UserData() { Name = _inputName }); |
|
|
|
_showUser.AddUser(new UserData() { Name = _inputName }); |
|
|
|
_inputName = ""; |
|
|
|
_inputName = ""; |
|
|
|
|
|
|
|
|
|
|
|
RefreshButton(); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void KickUser(UserData user) |
|
|
|
private void KickUser(UserData user) |
|
|
|
{ |
|
|
|
{ |
|
|
|
_users.Remove(user); |
|
|
|
_showUser.KickUser(user); |
|
|
|
|
|
|
|
|
|
|
|
RefreshButton(); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void RefreshButton() |
|
|
|
private void CallbackAction() |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (_users.Count % 2 == 0) |
|
|
|
_inputName = "Callback Action Called!"; |
|
|
|
_btnClass = "btn btn-primary"; |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
_btnClass = "btn btn-secondary"; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|