Compare commits
2 commits
c8d4423ba8
...
8860138999
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8860138999 | ||
|
|
2d321a3d53 |
2 changed files with 37 additions and 1 deletions
10
README.md
10
README.md
|
|
@ -34,3 +34,13 @@ And enable WebAssembly:
|
|||
```bash
|
||||
dotnet workload install wasi-experimental
|
||||
```
|
||||
|
||||
```bash
|
||||
bun server:up
|
||||
```
|
||||
|
||||
Add the spacetime docker server to your cli
|
||||
|
||||
```bash
|
||||
spacetime server add --url http://localhost:3000 massive
|
||||
```
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
using System.Text.RegularExpressions;
|
||||
using SpacetimeDB;
|
||||
|
||||
public static partial class Module
|
||||
|
|
@ -8,6 +9,7 @@ public static partial class Module
|
|||
[PrimaryKey]
|
||||
public Identity Identity;
|
||||
public string? Name;
|
||||
public string? Color;
|
||||
public bool Online;
|
||||
}
|
||||
|
||||
|
|
@ -42,6 +44,31 @@ public static partial class Module
|
|||
return name;
|
||||
}
|
||||
|
||||
[Reducer]
|
||||
public static void SetColor(ReducerContext ctx, string color)
|
||||
{
|
||||
color = ValidateColor(color);
|
||||
|
||||
var user = ctx.Db.User.Identity.Find(ctx.Sender);
|
||||
|
||||
if (user is null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
user.Color = color;
|
||||
ctx.Db.User.Identity.Update(user);
|
||||
}
|
||||
|
||||
private static string ValidateColor(string color)
|
||||
{
|
||||
var regex = new Regex("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$");
|
||||
if (regex.IsMatch(color))
|
||||
{
|
||||
throw new Exception("Invalid color code");
|
||||
}
|
||||
return color;
|
||||
}
|
||||
|
||||
[Reducer]
|
||||
public static void SendMessage(ReducerContext ctx, string text)
|
||||
{
|
||||
|
|
@ -113,4 +140,3 @@ public static partial class Module
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue