package mdparser

import (
	"context"
	"strings"

	"github.com/lorenzhohermuth/portfolio/pkg/github"
	"github.com/lorenzhohermuth/portfolio/view/component"
)

func GetWork() []component.Event {
	projectsFile, ghErr := github.FetchGHFile(context.Background(), "/interactive/work.md")
	if ghErr != nil {
		panic(ghErr)
	}
	components := make([]component.Event, 0)

	lines := strings.Split(projectsFile, "\n")
	tmpTitle := ""
	tmpPeriod := ""
	for _, l := range lines {
		isFilled, elm := parseMdWork(l, &tmpTitle, &tmpPeriod)
		if isFilled {
			components = append(components, elm)
		}
	}

	return components
}

func parseMdWork(line string, title *string, periode *string) (bool, component.Event){
	char := getChar(line, 0)	

	if char == "" {
		elm := component.Event{
			TimePeriode: *periode,
			Title: *title,
		}
		*title = ""
		*periode = ""
		return true, elm
		
	} else if char == "#" {
		*title = strings.TrimSpace(line[1:])
	} else {
		*periode = line
	}
	return false, component.Event{}
}