17
17
import dill as pickle
18
18
from channels .db import database_sync_to_async
19
19
from reactpy import use_callback , use_effect , use_ref , use_state
20
- from reactpy . backend . hooks import use_connection as _use_connection
21
- from reactpy . backend . hooks import use_location as _use_location
22
- from reactpy . backend . hooks import use_scope as _use_scope
20
+ from reactpy import use_connection as _use_connection
21
+ from reactpy import use_location as _use_location
22
+ from reactpy import use_scope as _use_scope
23
23
from reactpy .backend .types import Location
24
24
25
25
from reactpy_django .exceptions import UserNotFoundError
@@ -339,7 +339,7 @@ async def _set_user_data(data):
339
339
QueryOptions (postprocessor = None ),
340
340
_get_user_data ,
341
341
user = user ,
342
- defaults = default_data ,
342
+ default_data = default_data ,
343
343
)
344
344
set_data = use_mutation (_set_user_data , refetch = _get_user_data )
345
345
@@ -362,11 +362,11 @@ def _use_mutation_args_2(mutation, refetch=None):
362
362
return MutationOptions (), mutation , refetch
363
363
364
364
365
- async def _get_user_data (user : AbstractUser , defaults : None | dict ) -> dict :
365
+ async def _get_user_data (user : AbstractUser , default_data : None | dict ) -> dict | None :
366
366
from reactpy_django .models import UserDataModel
367
367
368
368
if not user or user .is_anonymous :
369
- raise UserNotFoundError ( "No user is available, cannot fetch user data." )
369
+ return None
370
370
371
371
model , _ = await UserDataModel .objects .aget_or_create (user = user )
372
372
data = pickle .loads (model .data ) if model .data else {}
@@ -375,9 +375,9 @@ async def _get_user_data(user: AbstractUser, defaults: None | dict) -> dict:
375
375
raise TypeError (f"Expected dict while loading user data, got { type (data )} " )
376
376
377
377
# Set default values, if needed
378
- if defaults :
378
+ if default_data :
379
379
changed = False
380
- for key , value in defaults .items ():
380
+ for key , value in default_data .items ():
381
381
if key not in data :
382
382
new_value : Any = value
383
383
if asyncio .iscoroutinefunction (value ):
0 commit comments