This allows for proper testing and documentation in Storybook.
I also moved the image into its own component. This required me to
adjust the vitest.config.ts slightly because it wasn't finding the image
during tests.
Since components are fully translatable, this means we have new keys
now.
Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
This markup was commented. In case we ever need it, git will have it
stored in the repo history.
Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
I also introduce Person24 as fallback avatar and grant it a new icon in
Storybook as consequence.
Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
I dropped the examples while at it.
Since Svelte-Octicons are used as-is I have to declare the license as
MIT.
Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
I received confirmation that Inter is meant to be used for the whole
application. Therefore I'm loading it from a remote server.
Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
As it is visible here, part of the layout is deferred to the parent
component. See Login template.
Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
There is a v8 in the beta, so I update the dependencies to check whether
I need to adjust something.
Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
This is the second form I have touched. Here, I even have a light
validation implemented on the server.
Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
I also extracted the Icons we use into a story and looked into how I
could potentially allow for changing the locale.
Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
Right now it is using the default Skeleton.dev palette.
I feel like we need to adjust it to our needs.
Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
This will need a refactor at some point by computing the formatted value
as reactive variable depending on the created_at and locale.
Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
I had to downgrade Vite because the Storybook builder does not support
v5 yet. Therefore this will be on a separate branch and updated as we
move along with the codebase.
Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
By moving the fallback text into its own component I was able to move
the list element into the History molecule. Its API has changed
accordingly. I have written tests to prevent regressions.
Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
I checked PenPot again and noticed that there is spacing between each
entry. I could have changed the lists to a different element but that
would be another refactoring just to use Flexbox for styling. Instead I
went with some margin.
If I want to use Flexbox I should first move the fallback from Profile
into this component and turn it into another Atom.
Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
This way the History molecule is only concerned with mapping the list of
commits to the appropriate structure and iterating over it. The markup
is deferred to separate components now.
Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
In order to reduce the complexity of a component I broke out the body
part of a commit into its own component.
Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
I was reading warnings during the execution of tests and fixed them for
ImportProject templates and pages.
Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
This allows for easier testing. The component is still complex, so it
requires more refactoring into smaller parts. But I can now safely do
that since I have specified the expected behaviour with a test.
I already discovered a bug while writing the tests: I want to group by
date irrespective of the timestamp. Therefore I need to parse the date
from the ISO timestamp of a commit.
Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
Yes, this means nested looping. But it also allows me to separate the
commits into a shape I need. I feel like this should not happen in
Vervis as it is something I as a consument of the data need.
I could have done this inside of the template but it feels ugly.
The main drawback I have with the current approach is that Svelte is not
capable of looping over objects so I have to turn that into a list of
nested Arrays. I might have done that in the function already but it is
easier to look up keys on an Object that to sift through Arrays.
The current implementation works. The next step is to extract it into a
component, test it and then I can refactor further.
Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
I also learned how to pluralise. I'm curious whether Weblate can handle
that. It follows ICU standard at least.
Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
I had to hardcode the path to the commits because it is not a property
on the repository object. There are empty repositories, which I handle
as well.
Next step is displaying them in the Activities.
Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
I'm going to start a new feature and want to make sure I'm running on
the latest compatible versions.
Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
When looking at the Memorandum of Understanding I realised that I should
display repositories instead of projects. So I reused the new component
to do just that.
I could not use a list here, because I need spacing between the
elements. If I were to apply Flexbox to lists it would change their
semantics. But plain divs lack all kinds of semantics. I went with the
next best thing and picked a section as container.
Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
During testing I realised that the buttons are not accessible.
While I was adding text I also ensured that it can be translated.
Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
I feel like Fork-Star-Watch is a pattern that we will reuse.
Therefore the new component is a molecule.
I also look up the person as collaborator which works for the small test
set I used during development but will likely break in production for
others. That's good. It will show me more information I need to design
the component better. I lack that at the moment.
Ideally I would use a database here, but before I can set up one I
better understand the data model.
Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>