Jump to content

Module:Creo/Components/Prevnext

From Creopedia

This documentation is transcluded from Module:Creo/Components/Prevnext/doc.

Output the top navigation for Module:Creo using Module:Prevnext.


require( 'strict' )

local prevnext = require( 'Module:Prevnext' )
local getIndexDataById = require( 'Module:Creo' ).getIndexDataById

local p = {}


--- @param creoId number
--- @return table
local function getPrevnextData( creoId )
	local prevNextData = {}

	local prevId = creoId - 1
	local nextId = creoId + 1

	local prevIndexData = getIndexDataById( prevId )
	local nextIndexData = getIndexDataById( nextId )

	if prevIndexData then
		local name = prevIndexData.name
		prevNextData.prev = name
		prevNextData.prevTitle = string.format( '#%d: %s', prevId, name )
	end

	if nextIndexData then
		local name = nextIndexData.name
		prevNextData.next = name
		prevNextData.nextTitle = string.format( '#%d: %s', nextId, name )
	end

	return prevNextData
end

--- @param context ComponentContext
--- @return string
function p.render( context )
	return prevnext._main( getPrevnextData( context.data.id ) )
end


return p