Using GROQ queries in Structure Builder for custom ordering
11 replies
Last updated: Aug 23, 2022
V
If I am using the Structure Builder, I see that there are filters, but it is quite explicit that I cannot feed it queries.
I wanted to take second pane child documents of my first pane's schema type, and apply a very particular order to them, but custom orderings depend on a string, which I don't have (I am doing some basic math to a nested value inside the color picker).
I thought about making a custom input that tried grabbing that and returning a string out of that to feed into the orderings object, but I'd much rather use a GROQ query ( with an
order qualifier at the end ) because that more or less returns the list I am after.
Is this possible? I get a bit faceblind with the terminology like list, list item, listtype, listtypeitem, etc. and while
I wanted to take second pane child documents of my first pane's schema type, and apply a very particular order to them, but custom orderings depend on a string, which I don't have (I am doing some basic math to a nested value inside the color picker).
I thought about making a custom input that tried grabbing that and returning a string out of that to feed into the orderings object, but I'd much rather use a GROQ query ( with an
order qualifier at the end ) because that more or less returns the list I am after.
Is this possible? I get a bit faceblind with the terminology like list, list item, listtype, listtypeitem, etc. and while
user B
posted a useful example to pick a child at random, it's just the one item and my attempts to come up with a map -- even though the console logs the full list properly -- don't work. I can try to reproduce the explosion if someone needs exact errors but I'm not even sure if it's possible.Aug 22, 2022, 10:06 PM
R
A
child()can actually take a function. Even better, it can take an async function, which will allow you to use a GROQ query to get the documents you want! There's an example of this here . You can just tweak the query and use it! Make sure you install rxjs so that your lists will automatically include any new documents you create.
Aug 22, 2022, 10:22 PM
V
Wow,
user M
that was lightning fast! Thanks! I'll give it a shot.Aug 22, 2022, 11:37 PM
V
Huzzah, a finished product: https://somup.com/c3j0VxUeIC
Aug 23, 2022, 1:33 AM
V
You really can do anything in :sanity: anity, it seems. In Star Trek : The Next Generation there was an episode that (spoilers) had them discover one base humanoid race that everyone supposedly came from, kind of as a way to explain why every new life form they discovered wasn't really much different and always somehow managed to resemble people covered in makeup and foam π
Sanity is like we're doing things backwards. This is such a raw, pure form of content creation that you'd think it was first and everyone else was a derivative that came after, just because it seems so direct and capable in comparison to, well,
literally everything else.
Instead it is here, fresh and modern like a vanguard, saving us from the perils of the past like an S-shaped angel!
π
Sanity is like we're doing things backwards. This is such a raw, pure form of content creation that you'd think it was first and everyone else was a derivative that came after, just because it seems so direct and capable in comparison to, well,
literally everything else.
Instead it is here, fresh and modern like a vanguard, saving us from the perils of the past like an S-shaped angel!
π
Aug 23, 2022, 1:39 AM
R
Ahh, I love getting to see inside the Studios people build, so thank you for sharing! We need a Sanity :sanity: with angel wings on it!
Aug 23, 2022, 4:30 PM
R
it's beautiful
Aug 23, 2022, 4:50 PM
R
:sanity-wings:
Aug 23, 2022, 4:52 PM
V
Now that is beautiful!
Aug 23, 2022, 4:57 PM
V
I give it 5 out of 5 :knut: :knut: :knut: :knut: :knut: s
Aug 23, 2022, 4:57 PM
S
petitioning to make this an official standard of rating stuff in sanity!
Aug 23, 2022, 5:56 PM
R
"My god! It's a 5 on the :knut: scale!"
Aug 23, 2022, 5:58 PM
Sanityβ build remarkable experiences at scale
The Sanity Composable Content Cloud is the headless CMS that treats content as data to power your digital business. Free to get started, and pay-as-you-go on all plans.