- updated so all the hooks for managing media item can filter media
types (iow, filter by the media's file extension such as .glb, .zip,
etc)
- some other typo and code clean up
- search feature now waits for a key delay before firing a fetch for
search, so it doesn't fire on every key-stroke
---------
Co-authored-by: wil <wil@storyteller.ai>
Pagination of our frontend was implemented "naively" due to previous
time constraints; now, it's "correct" to reflect server responses
exactly. More precisely:
- the Pagination component (frontend) is updated to understand that
there are more fetch-able pages (backend) and it shows a "More ..."
button when the user have reached the last page on the frontend.
- this sub-feature of the Pagination module, the "More ..." button, is
implemented on the character sub-tab only (for now)
- the character sub-tab looks at the set of characters that it is
displaying (ie featured vs mine), and pass the correct fetch-more-pages
function to the Pagination component
- the underlying hooks to managed fetch feature objects and user
objects, their api invoker utilities, and the api classes are all
updated to deal with pagination properly
small issue:
- pagination of featured items uses "infinite pagination" to prevent
competitors from knowing how much data we have in our system, which
means, there will always be a "cursor to the next page", and we would
only know we have reached the end when we request a next page with a
cursor but a response of no results returns. so, for featured items,
when the user reached the last page, the "More ..." button will show up
once, if you clicked it and it goes away, there are no more items in the
server. This extra "More ..." button is the current "correct" behaviour.
---------
Co-authored-by: wil <wil@storyteller.ai>
- fixed some font alignments things here and there
- there's a missing variable uncollected for scene generation meta,
fixed it
Co-authored-by: wil <wil@storyteller.ai>
- Rebased to take the filter object from bombay
- New Object Upload Tab available in Film Set Tab and Object Tab
- Character Tab now uses the generic uploader because previewing and
taking a snapshot of a character is too much of a code challenge atm.
- added the dev-only feature tag, expressions uploads is now dev-only
- went over acceptable file types and took out refreshed all the upload
tabs
- realign the code so all upload tabs uses the exact same logic,
interfaces, and code structure, for better legibility
this PR eliminates:
https://github.com/storytold/GottaGoFast/pull/600https://github.com/storytold/GottaGoFast/pull/598
---------
Co-authored-by: wil <wil@storyteller.ai>
**main changes:**
- every tab now has search for featured/mine (sets, character,
animation, facial expression, objects, image panels)
- all are under the same posthog feature flag
- I've tested all tabs myself it shouldn't have any problems, except
expressions which filter engine categories is returning nothing (but
isn't that important, can be fixed later, since we only have a few
expressions currently and it's dev only)
**other small changes:**
- loading title font weight change
- typo and leading fixes
@bflatastic please be mindful that all the components in the reusable
folder are/could-be/should-be reused in different components, which
means, if a signal is needed, their parent component has to load that
signal and pass it on to them, otherwise the component wont be reusable
anymore
Co-authored-by: wil <wil@storyteller.ai>
Tabs Improvements:
- refactor tabs so no more race condition revolving unneccessary signals
- clean up signals
- refactor upload modal movement to be non-signaled and generalized for
more files types
- better naming for files and components, better error handling, eslint
type any fix
- upload file screen can use less state rerenders and better error
messages
Object Uploader
- adapt the old object upload modal with 3d object preview into the
updated best version of upload modal
- preview loader code improvements, better flow and organization
Sets Tab:
- create a set tab, it currently show objects
- hide it behind a FeatureFlag
---------
Co-authored-by: wil <wil@storyteller.ai>
- add functions in API manager to use the search API
- adds search field to object tab, it searches through featured/mine objects depending on which tab you are on
- this feature is hid behind a feature flag until we have a proper design and solution to handling assets
---------
Co-authored-by: wil <wil@storyteller.ai>
- Gravatar is cover by a spinner, the broken image icon is now never
visible
- the My Profile buttons is now an <a> tag, it is now possible to right
click and open My Profile on a new tab and not lose the scene.
---------
Co-authored-by: wil <wil@storyteller.ai>
Fix/ Pagination in Side Tabs
- updated itemElements to be compatible with pagination
- updated characters, animation, expressions & objects tab to use
pagination
- hard set loading user & featured items of any kind to be 100
- better pagination implementation in audio tab
- patching filters to load everything first
- code cleanup, resolve linter complaints
Fix/ Filter Items in Side Tabs
- patching FilterButton and other components so then the filters
actually works
- patching all tabs to use the FilterButton
- clean up, eliminated unnecessary signal to remember filters.
---------
Co-authored-by: wil <wil@storyteller.ai>
- simplify the upload component in v2v because the api manager made it
easier now
- comb through all the old api files
- since nothing refers to them anymore, they are deleted
Co-authored-by: wil <wil@storyteller.ai>
use ApiManager for uploading characters and objects
fixed states of the modal so it doesn't get stuck
fixed refresh call on the user library
---------
Co-authored-by: wil <wil@storyteller.ai>
implement ApiManager ver of UploadAudio
- refactor UploadAudioDialogue to use endpoint
- cherrypicked MediaUploadApi from api-manager-5
- code cleanup as we tread through the files
- delete old request
- patched ApiManager to have a multipart fetch
Co-authored-by: wil <wil@storyteller.ai>
_**WAITING FOR THE SERVER UPDATE FOR END-TO-END TESTING**_
- created ui and queue communication for switching camera aspect ratio
done
- editor's render camera read queue to switch camera aspect ratio
- letterbox now available in camera view mode for a better preview of
the aspect ratios
- updated ui to match figma design after design update
- vertical camera styling updates (by bflat)
- finalized our render resolutions at different aspect ratio
---------
Co-authored-by: wil <wil@storyteller.ai>
- separating the signals and disabled the code that introduced the bug
- setup job signals properly to manage completed and active jobs
- setup myMovies signals properly to load user's list of videos
- make new hook to manage polling for job signals
- make new hook to manage background polling for user videos
- finished the logic for toggling and repeating jobs polling
- finished the logic for triggering a background poll of user movies
Co-authored-by: wil <wil@storyteller.ai>
supress error for process env, added vscode setting to gitignore
segrgate enums (#369)
Co-authored-by: Christopher Oliphant
<RALifeCoach@users.noreply.github.com>
Refactor storybook (#370)
Co-authored-by: Christopher Oliphant
<RALifeCoach@users.noreply.github.com>
button dropdown docs (#372)
storybook doc for button dropdown component
refactor side panel tabs (#371)
Co-authored-by: Christopher Oliphant
<RALifeCoach@users.noreply.github.com>
fix enums (#373)
Co-authored-by: Christopher Oliphant
<RALifeCoach@users.noreply.github.com>
Refactoring Auth Context to Signals (#374)
- file restructure, store -> signals
- rewrite AuthContext to signals, and get rid of AuthContext
- modify all files that need to use AuthContext to use the
authentication Signal
- the complex login persistency logic is now just a persistLogin
function ran at root!
- fetchers uses the auth signal directly to get the sessionToken
- components no longer useSignals for these fetchers, hence decoupled
from the auth signals
!! components and fetchers that are definitely subjected to refactor
does not receive the useSignal decoupling treatment
Co-authored-by: wil <wil@storyteller.ai>
Refactoring Toaster Context to a Toaster Component + Signal (#378)
- Created the Toaster Component
- Created the Toasts Signal
- Now no useContext is needed for Toast Poping, nor passing AddToast
around
- Simply import addToast from the Signals and you can pop a toast from
anywhere in the codebase
Co-authored-by: wil <wil@storyteller.ai>
Refactoring AppUi Context (partial: delete unused, editorLoader becomes
signal) (#379)
- dialogueTTS is unused, hence deleted
- view side-by-side mode is unused, hence deleted
- timeline height in this context was already made into signal, hence
deleted
- editorLoader in this context is now made into a page level signal,
hence deleted
- components and dispatcher of the editorLoader are modified to use
signal instead
- app level reducer is no longer used, tugged into context folder to
avoid confusion, will be deleted when all attributes in AppUi context is
refactored into signals
Co-authored-by: wil <wil@storyteller.ai>
Refactor control panel (#391)
- control panel - simplified and improved
- Please also test it. It operates slightly differently. For example, if
the user types an invalid character, the character is ignored.
---------
Co-authored-by: Christopher Oliphant
<RALifeCoach@users.noreply.github.com>
Refactoring App Level Components
- Components that are in the /app/component folder are split into
reusable and signaled
- reusable are in theory signal independent
- signaled are dependent on signals (and maybe a use-once component)
- some app level components has page level enums or signals, those are
bumped to app level now
- all components in the module directory are moved into the component
directories depending on whether it's reusable or signaled
- code changes in are mostly just import changes to get re-target to get
the correct files
- discovered a small bug in FilterButtons and is fixed
- whether a component need more work, it is commented on the index file
that import them into the grand collection of components
Refactor - Signals Part 2
- store is renamed to signals in PageEditor for clarity
- ObjectControlPanel now uses a Signal instead of the AppUiContext
- Moved EditorContext to Page Level, all context are page level only now
- editor is modified to read and use signals directly (for now), this
includes: -- the ObjectPanel signal
-- the Scene signal
-- the Authentication signal
- and hence, editor now has a constructor doesn't require any arguments
- editor also has a simple initialization
- AppUiContext is retired completely and deleted
---------
Co-authored-by: wil <wil@storyteller.ai>
Co-authored-by: Christopher Oliphant <RALifeCoach@users.noreply.github.com>